SQL在这两个语句之间的性能有差异吗?SQL Server查询:Union vs Distinct union所有性能
SELECT distinct 'A' as TableName, Col1, Col2, Col3 FROM A
UNION ALL
SELECT distinct 'B' as TableName, Col1, Col2, Col3 from B
与
SELECT 'A' as TableName, Col1, Col2, Col3 FROM A
UNION
SELECT 'B' as TableName, Col1, Col2, Col3 from B
这一点,类似的问题,如UNION vs DISTINCT in performance的是,我可以确认的时间提前了单独的表我使用不会有任何之间的重复记录之间的区别他们,只在个别表内。
执行计划对我来说看起来是一样的,因为它在连接之前对各个表进行排序。但是,如果我从它们中移除标量,则UNION ALL的计划基本保持不变,但UNION在变体之前更改为并置。我会将大约20个表连接在一起,并且不清楚是否执行20个单独的DISTINCT比最后执行一个大的DISTINCT快,因为我仍然可以确认这些表不会共享它们之间的任何重复(仅在相同表)。
将两个查询放在一个会话中,激活执行计划并执行。比较实际执行计划中的百分比 – DimaSUN
这是我所做的,但我当时只有几千条记录 - 不足以测试实际总执行时间的差异,更不用说调整行数,列数,列的数据类型等,以获得一般答案。正如我所说,我执行的执行计划看起来是一样的。即使不是,一个下降,另一个上升并不意味着总执行时间。 – WakeflyCBass