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