T-SQL 中 ANSI JOIN 與非 ANSI JOIN 的效能差異
在 T-SQL 預存程序中,非 ANSI JOIN 語法一直很常見:
<code class="language-sql">SELECT A.A, B.B, C.C FROM aaa AS A, bbb AS B, ccc AS C WHERE A.B = B.ID AND B.C = C.ID AND C.ID = @param</code>
有人推測,將其替換為 ANSI-92 JOIN 語法可以提高效能:
<code class="language-sql">SELECT A.A, B.B, C.C FROM aaa AS A JOIN bbb AS B ON A.B = B.ID JOIN ccc AS C ON B.C = C.ID AND C.ID = @param</code>
它們是否相同?
在這個特定範例中,這兩個查詢的執行是相同的。但是,ANSI-92 語法有以下幾個優點:
非 ANSI 語法的論點
有些人認為,非 ANSI 語法有助於將 SQL 概念化為笛卡爾積之後再進行過濾。雖然此技術可以幫助理解,但建議採用首選的 ANSI-92 語法,因為它總體上更清晰且符合標準。此規則的唯一例外是使用自然連接時,由於其固有的風險,應完全避免使用自然連接。
以上是T-SQL 中的 ANSI JOIN 與非 ANSI JOIN:效能有何差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!