我知道 UNION ALL 应该比 UNION 具有更好的性能(请参阅:union 与 union all 的性能)。
现在,我有这个巨大的存储过程(有很多查询),其中最终结果是两个部分的 SELECT,它们之间有一个 UNION。由于两个数据集彼此都是陌生的,我可以使用 UNION ALL 假设更好(没有不同的操作)。
我已经在几个数据库上检查过它,它工作正常。问题是我的一个客户给了我他的数据库进行性能调整,当我调查它时,我注意到如果我将 UNION ALL 更改为 UNION,性能会更好一些(!)。这就是我在存储过程中所做的所有更改。
有人可以解释一下这种情况是如何发生的吗???
谢谢,
齐夫
更新:
附加两个查询的执行计划(差异部分):