摘要:在使用索引对数据进行查询时,优化器考虑是执行索引扫描还是索引查找的依据是根据此索引相关的统计信息。但统计的步长不能超过200(DBCC SHOW_STATISTICS返回的第三部分结果),这在数据量很大的表中,使得统计信息的精度变得越来越不准确。当然,这个影响不会很致命,发生的机会也很少。关键是统计信息得不到及时更新的话,就会使优化器选择错误的执行计划了。 如果我们在事件探查器中发现很多的MIS...
阅读全文
摘要:我们发出的SQL语句,如果没有对应的缓存,优化器都会创建一个相应的执行计划。但是,优化器基于成本的优化过程,在面对比较复杂的SQL语句时,不会考虑所有的情况。因此有些时候,就会给出一个近似高效的执行计划。同时,受生产环境负载的影响,可能优化的过程会更不彻底,因此我们就应该控制语句的复杂程度,以减少优化器考虑各种组合的可能性。当系统的性能出现问题时,即便你的索引建的很完美,但有的时候因为选择度的问题...
阅读全文
摘要:在新的SQLSERVER数据库服务器上线之前,我们在格式化硬盘时应该选择分配单元的大小为64K,因为SQLSERVER的扩展分区大小是由8个8K的数据页组成的。把分配单元大小设置为64K,可以减小索引的外部碎片,在前面的文章中已经介绍过http://www.cnblogs.com/tom-fu/archive/2008/07/09/1238568.html。但这对硬盘的配置还是不够彻底。每块磁盘都...
阅读全文