日期:2014-05-18  浏览次数:20483 次

大牛们来分析下,索引为什么没用。
表结构:

索引:


两个非聚集索引都分别建立在 CateGray2字段和Status字段。


表中有7.9w+ 条数据。

SQL语句:
SQL code

select * from b_product where status<99 (这个会返回7.7W+ 条数据,耗时60多秒)
select * from b_product where categray2=171 (这个会返回2W+ 条数据 耗时11秒)


速度实在是难以接受了,求原因,优化方案!

------解决方案--------------------
探讨
表结构:

索引:


两个非聚集索引都分别建立在 CateGray2字段和Status字段。


表中有7.9w+ 条数据。

SQL语句:
select * from b_product where status<99 (这个会返回7.7W+ 条数据,耗时60多秒)
select * from b_product where categray2=171 (这个会返回2W……

------解决方案--------------------
这个速度应该已经可以了吧;
如果还要提高速度的话,可以试下表分区,也许会有点效果。
------解决方案--------------------
如果你要select的内容只有一两列,且列的内容短小,可以把这一两列包含到非聚簇索引里面(覆盖索引的概念)
------解决方案--------------------
SQL2005分区表