SqlServer索引失效的情况有哪些

lewis 2016-07-11 36次阅读

  1. 表数据量过小或者分布不均匀,导致SQL Server查询优化器认为使用索引扫描的代价大于全表扫描,从而选择全表扫描而不是使用索引。

  2. 索引列上的数据不均匀,比如索引列上存在大量重复值的情况,会导致查询优化器认为使用索引扫描的代价较大。

  3. 索引列上存在大量NULL值,如果查询条件中包含了NULL值,那么索引就无法起到作用。

  4. 索引列上的数据类型不一致,比如在索引列上使用了函数或者类型转换,这样会导致索引无法被使用。

  5. 查询条件中包含了不等于(!=)或者不包含(NOT IN)等操作符,这些操作符会导致索引失效。

  6. 查询条件中使用了函数或者类型转换,这样会导致无法使用索引。

  7. 索引列上存在大量重复值,如果查询条件中包含了重复值,那么索引就无法起到作用。



发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。