感谢您帮助我。我有这个索引视图,我正在选择。我创建了一个非聚集索引,但该查询具有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时,我可以尝试其他方法吗?再次感谢您
答案 0 :(得分:0)
我的问题下面的每个建议都对我有帮助