优化引擎判断有误
来源:互联网 发布:java io流面试题 编辑:程序博客网 时间:2024/05/01 19:49
数据库版本:SQL Server 2008R2.
前几天在审计的时候发现一个数据库的压力稍高,理论山现有的访问压力不应该使服务器压力达到这样的高度。在优化过程中发现,一类百万量级表上的查询无法使用到索引。显示的执行计划如下,很明显,SQL 执行过慢是因为全部走了主键查找。
统计信息显示如下:
表 'AccountCallbackInfo_4'。扫描计数 1,逻辑读取 4584855 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
奇怪的是该表上建的有该SQL 查询条件所要使用的索引,但是查询优化器并没有使用到,难道是查询优化器判断有误。
在查询的时候强制使用索引试下。
select top 100 id from Table with(nolock,index(ix_AccountCallbackInfo_DONotDelete)) where TradingServiceType = 1 and NextCallbackTime<='2011-11-07 00:01:46' and CallBackOperationType =4 and CallbackStatus = 0 order by CreatedDate ASC
这次的统计信息如下。
(100 行受影响)
表 Table。扫描计数 2,逻辑读取 622 次,物理读取 0 次,预读 6 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
(1 行受影响)
SQL Server 执行时间:
CPU 时间 = 1298 毫秒,占用时间 = 186 毫秒。
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
可以看到两次的IO量级差了5个量级。查询时间上也差了很多倍。
---有时间需要研究下优化引擎怎么使用统计信息的。
- 优化引擎判断有误
- 判断IP输入是否有误
- xeyez引擎优化记录
- 数据库引擎优化顾问
- Mysql Innodb 引擎优化
- Mysql Innodb 引擎优化
- Zend引擎的优化
- Zend引擎的优化
- 数据库引擎优化顾问
- Mysql表引擎优化
- SSE优化引擎
- mysql 引擎优化
- mysql 引擎优化
- Mysql Innodb 引擎优化(-)
- 模板引擎优化
- 3d引擎优化
- Mysql Innodb 引擎优化(-)
- 优化Innodb存储引擎
- awk print
- 终于可以写博客啦
- c++中内存拷贝函数详解
- SHELL脚本批量修改文件中的某一个字符串(不带矫正,不修改elf文件)
- css hack大全
- 优化引擎判断有误
- Eclipse常用快捷键
- kvm 制作eucalyptus(UEC)镜像的一些记录
- 总线型拓扑结构
- Java容器高级
- EXCEL随机函数实例
- 了解iPhone应用程序中App目录结构
- protobuf和thrift对比
- 广播风暴原理,成因及解决办法(个人整理)