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中文网其他相关文章!