我必须跨多个表运行一条select语句。我确信这些表返回不同的记录。无论如何,我都在使用联合所有。
当我确信这两个表返回不同的记录时,在性能方面使用UNION还是of UNION ALL更好?
发布于 2010-09-02 22:15:10
当您不关心消除重复记录时,UNION ALL将比UNION执行得更好,因为您避免了代价高昂的distinct sort操作。请参阅:SQL SERVER – Difference Between Union vs. Union All – Optimal Performance Comparison
发布于 2010-09-02 22:14:13
UNION ALL总是更快,因为UNION排除了重复的条目
发布于 2010-10-14 17:47:25
UNION在内部实现两个查询。1.返回数据集的SELECT。2.DISTINCT。任何研究过数据库内部结构的人都可以很容易地理解,就处理而言,DISTINCT子句是非常昂贵的。
如果您非常确定生成的dataset不需要唯一行,那么我们可以跳过UNION,改用UNION ALL。
UNION ALL将与UNION相同,不同之处在于它不会在内部触发DISTINCT,从而避免了代价高昂的操作
https://stackoverflow.com/questions/3627946
复制相似问题