避免执行计划中的排序警告

时间:2016-04-29 09:16:39

标签: sql sql-server

我有以下简单查询:

create table #Table(Id bigint primary key clustered)


insert into #Table (Id)
select  Id
from    dbo.MyTable
where   InsertDate >= '01.04.2016'
        and InsertDate <= '30.04.2016'
option (maxdop 1)

但是在执行计划中我总是收到排序警告,即使我不想使用排序。我怎样才能避免这种情况(排序交战)? 谢谢 enter image description here

1 个答案:

答案 0 :(得分:0)

为什么要避免排序?

查询优化器发现它正在插入带有群集主键的表中。在这种情况下,SORT必须发生,因为这是数据物理存储的方式。

至于为什么排序有警告,查询中的估计行数和实际行数之间存在差异。 您似乎在dbo.MyTable上有一个满足您的查询的索引,但是存在剩余谓词或统计过期或任何其他潜在问题,从而在估计行数和实际行数之间产生差异。

但最后我们回到你想要的原因?