SQL Server索引帮助。如何加速WHERE和ORDER BY

时间:2016-10-20 20:42:44

标签: sql-server indexing sql-order-by query-optimization where

感谢您帮助我。我有这个索引视图,我正在选择。我创建了一个非聚集索引,但该查询具有WHERE谓词和ORDER BY要求。如果我将WHERE中的列放在索引的第一位,那么ORDER BY很慢,反之亦然。我能找到的最好的是混合,但速度并不是我想要的。

就像这样:

SELECT apple, banana
FROM indexViewFood
WHERE pickingDate BETWEEN '09/01/2016' AND '10/02/2016' 
  AND aid IN (1,2,3,4)
  AND bid IN (11,12,13,14)
ORDER BY apple, banana

现在,我有关于pickingDate的索引,然后是apple:

CREATE INDEX ix_food ON (pickingDate, apple) INCLUDE (banana, aid, bid)

索引搜索的成本为3%,而排序的成本为90%。如果我输入(aid,pickingDate)索引,则执行时间会更长。

查询必须按这些名称排序。真实查询从多个表中选择左连接。所有额外数据必须减慢排序操作。目前的运行时间是五分钟。

我可以尝试其他指数组合吗?当谈到WHERE和ORDER时,我可以尝试其他方法吗?再次感谢您

1 个答案:

答案 0 :(得分:0)

我的问题下面的每个建议都对我有帮助