我有一个视图(myview),其中union all位于3个表上。这3个表有或多或少相似的列。但它们都有createddate列。当我表演的时候
SELECT TOP 10 … FROM myView WHERE (CreatedDate >= '2020-01-01 22:00:00' AND CreatedDate <= '2020-06-26 21:00:00') ORDER BY CreatedDate DESC
我有这样的执行计划。在表2中有数百万条记录,这是非常缓慢的。
我尝试在每个表的createddate desc上创建非聚集索引,但仍然是表扫描。将所有数据包含到索引的“包含列”中–这不是一个选项,因为1列是包含大量数据的xml列。有没有什么方法可以使这个速度变快或使用那个索引?
1条答案
按热度按时间cu6pst1q1#
尝试使用cte,以便只选择始终包含在非聚集索引中的聚集索引列之前,然后与包含其他列的视图进行联接,如下所示:
或者,您可以修改您的索引,包括您正在选择的列。。。比如: