我遇到了一些性能問題,我有一個查詢如下:使用UNION和UNION ALL在同一查詢
SELECT * FROM Foo
UNION
SELECT * FROM Boo
UNION
SELECT * FROM Koo
我知道肯定Koo
沒有返回任何重複。我正考慮在最後使用UNION ALL
,因此保存Koo
的排序和截然不同的選擇時間。查詢應該是這樣的:
SELECT * FROM Foo
UNION
SELECT * FROM Boo
UNION ALL
SELECT * FROM Koo
是否會有助於或會受到一定影響BU第一UNION
?
測試兩種方法 - 查看查詢計劃並查看是否存在_any_差異。 – Oded
@Oded是的,但前提是您的測試數據和服務器配置具有代表性。否則,您可能會根據與您的測試設置相關的(非)優化做出錯誤的假設。即檢查您的10條記錄上的查詢計劃,如果您打算擁有10,000,000條記錄,32個內核和大量RAM,則單核,低RAM設置沒有多大用處。 – Jodrell
請注意,不僅Koo應該沒有重複項,而且Koo也不應包含任何在Foo或Boo中的行。 –