2011-09-28 61 views
0

我想從兩個表中查詢數據到一個表使用外部連接。關鍵是要唯一標識行,需要三個字段。這使我查詢包含此表達式:SQL Server的外部連接多個鏈接的字段

FROM Data1 DB 
    RIGHT OUTER JOIN Data2 FT on (DB.field1 = FT.Value1 
           and DB.field2 = FT.field2 
           and DB.field3 = FT.field3) 

但是,查詢運行幾乎永遠。爲了測試我使用WHERE條件和FULL OUTER JOIN的全部內容,並且在WHERE條件下它幾乎是立即完成的,而使用FULL OUTER JOIN我遇到了同樣的麻煩,並且通常最終在5分鐘左右之後取消整個事情。

任何人都可以看到我做錯了我的查詢?謝謝你的幫助!

+2

您的FK字段是否已編入索引? – HLGEM

回答

0

你是否真的需要查詢中的所有記錄?一些WHERE標準可以大大縮短執行時間。

是的,和索引。檢查計劃並創建推薦索引。

0

最好的辦法是查看執行計劃(如果您對此感到滿意,請在您的問題中張貼截圖)。這會告訴你查詢中最昂貴的部分在哪裏。