如果行是唯一的,则为Union与Union ALL

时间:2016-06-28 18:50:15

标签: sql performance sas proc-sql

我希望优化性能,同时将具有相同元数据的许多SAS数据集的查询整合在一起。此时我有:     选择*来自     (选择t1.column_a,t1.column_b           来自表t1)     联盟     (选择t2.column_a,t2.column_b           来自表t2) 等等。 每个查询都会显示唯一的行,如果我使用Union All,我会节省时间吗?

2 个答案:

答案 0 :(得分:1)

是。你是对的。请参考这个。 What is the difference between UNION and UNION ALL?

如果您非常确定没有重复项,那么您可以使用UNION ALL代替UNION。后者缺乏性能,因为它必须删除重复

答案 1 :(得分:0)

在UNION期间的某个时刻,将检查重复项。即使这些检查都是错误的,它们也是一个额外的步骤。 UNION ALL可能会更有效率,但正如dfundako指出的那样,你必须测试并确保速度有所不同。