首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于datetime字段查询使用不到索引的有关问题

2013-04-21 
关于datetime字段查询使用不到索引的问题。表a中字段col是datetime,该字段上建立 了索引select * from a wh

关于datetime字段查询使用不到索引的问题。
表a中字段col是datetime,该字段上建立 了索引
select * from a where col = '2012-5-23',返回结果只有12条,但执行计划中看到的竟然是clustered index scan,并没有使用该字段索引,这是为什么,请高手指点,先谢了。注表中数据有几千行
[解决办法]
非覆盖查询不走索引很正常,因为索引没有包含所有数据,其它数据要从Clustered里面读取。

SQL会根据索引评估返回的行数,如果超过一定的数值(大概3-4%左右),SQL会认为数据平均分布在Clustered各页,这时无疑直接clustered index scan是更好的选择。
[解决办法]
n查询select col 是否使用索引呢?
[解决办法]
对于查全部的数据,走索引其实意义不大了。限制数据的返回数量,如加where语句。然后尽量走聚集索引,因为聚集索引包含了数据表本身。这样已经很高效了。也没必要非要追求聚集索引、索引查找。

热点排行