當從表A 擷取表B 中不存在的記錄時,SQL Server 提供兩個選項: LEFT OUTER JOIN並且不存在。雖然普遍認為,由於 SQL Server 的 ANSI 傾向,LEFT OUTER JOIN 效率更高,但了解每個運算符的特定效能特徵非常重要。
LEFT OUTER JOIN 取得所有操作符表A中的記錄,無論它們在表B中是否有對應的條目。然後根據連接過濾掉不匹配的記錄 標準。在處理大型表或多個連接條件時,這個詳盡的過程可能會消耗大量資源。
NOT EXISTS 另一方面,以「短路」機制運作。一旦找到匹配的記錄,它立即忽略當前正在檢查的記錄。此方法在以下情況下效率較高:
一般來說,NOT EXISTS 或 EXISTS 是首選如果子查詢預計返回大量匹配記錄,則其效率較高。但是,需要注意的是:
以上是LEFT OUTER JOIN 與 NOT EXISTS:哪個 SQL 子句提供更好的效能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!