SQL Server性能问题



我在SQL Server 2012:中有这个查询

Select cat, dog, ant, pig, ItemId 
from dbo.Animals 
where cat <> 'sam' 
and cat in ('bam', 'dam') 
order by pig

我在下面列出了我所做的事情,并查看了下面的执行计划和执行时间。

  1. 无索引-表扫描-20秒

  2. ItemId上的聚集索引-聚集索引扫描-20 s

  3. cat上的非聚集索引-聚集索引扫描[与2]-20s 相同

  4. 清管器上的非聚集索引-聚集索引扫描[与2]-20s 相同

我的问题是,为什么所有场景中的性能都相同?

缓存是一个因素吗?我目前没有权限玩释放缓存之类的游戏。我可以从索引的角度尝试其他东西吗?

您的where是多余的,因为cat上的条件只需要in

我怀疑该索引可以用于where子句,但不能用于order by。因此,索引可以用于优化对行的搜索,但不能用于最终排序。大概有大量的数据,这占用了大部分时间。

最新更新