SQL 服务器索引帮助。如何加速 WHERE 和 ORDER BY

SQL Server Index Help. How to speed up both WHERE and ORDER BY

谢谢你帮助我。我有从中选择的索引视图。我创建了一个非聚集索引,但查询有 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 By 组合时,我可以尝试其他方法吗?再次感谢

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