Mar*_*tin 5 sql-server optimization insert
我有以下查询:
INSERT INTO table(field, field1)
SELECT value, value1 FROM table2 e
ORDER BY value
Run Code Online (Sandbox Code Playgroud)
比这个花费更少的时间:
INSERT INTO table(field, field1)
SELECT value, value1 FROM table2 e
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么?
第二个的执行计划显示sql无论如何都会执行“order by”操作,但性能不如我的
表 table2 中的 value 列是否有非聚集索引?您在 value 子句上的表上是否有聚集索引?我可以看到两个可能的原因。
1.列值上有某种非聚集索引,以便优化器选择该索引并避免排序(它也可以是覆盖索引,在这种情况下它会非常快)。没有任何 order by 的查询之所以没有选择该索引,是因为它是一个简单的查询,没有进行任何优化,并且它执行了聚集索引或表扫描,然后对数据进行排序,与 order by 相比,它导致性能下降。这是最有可能的原因。