摘要: 不要认为只要有负向查询出现在查询条件WHERE子句中就一定认为索引就没有效用,在WHERE子句中使用非SARG并不一定导致全表扫描或是聚集索引扫描。SQL SERVER可以在某些非SARG状况中使用索引,以及查询中虽然包含了部分非SARG但仍可以对此查询中的SARG部分使用索引。 也不要认为在查询语句中的查询条件WHERE子句中使用SARG就一定会使用到相应的索引,而不会进行全表扫描或聚集索引扫描。SQL SERVER查询优化程序会根据SARG使用情况所获取的查询结果的记录数量是否过多,而决定是使用相应的索引,还是使用全表扫描或是聚集索引扫描。当然,无论情况如何,在进行性能调校时,最先也是最直接的改变就是把非SARG改成SARG。因为把非SARG改成SARG最坏的情况就是全表扫描或是聚集索引扫描,查询结果的记录数量比较少,会高效利用相应索引,快速查出结果。 阅读全文
posted @ 2013-01-26 20:34 DotNet菜园 阅读(2300) 评论(0) 推荐(2) 编辑