2014-02-13 28 views
0

我有一個使用UNION的查詢,但它的工作很慢。改爲使用什麼UNION?

Select col1, col2 From table_1 (INDEX idx MRU) 
    where (condition) 
UNION 
Select col1,col2 From table 2(INDEX idx MEU) 
    where (condition) 

我該如何讓它工作得更快?

+1

'UNION'執行速度是否較慢,連續運行兩個單獨的查詢? –

回答

0

嗯,這取決於表有多大的「其中」條款如何選擇是等

你可以嘗試做一個「設定顯示計劃」,然後運行查詢,這將給你輸出來自查詢優化器。理解showplan輸出可能不是微不足道的。此外,請確保您已在表上運行「更新統計信息」以幫助查詢優化器做出正確的決定。

需要注意的是,聯合運算符隱含地執行了不同的操作。這意味着你將在tempdb中排序結果。如果你不關心重複,請使用「union all」。

相關問題