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 構文の方が明確で標準に準拠しているため、推奨される ANSI-92 構文をお勧めします。このルールの唯一の例外は、自然結合を使用する場合です。自然結合には固有のリスクがあるため、完全に回避する必要があります。
以上がT-SQL の ANSI JOIN と非 ANSI JOIN: パフォーマンスの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。