Leistungsunterschied zwischen ANSI JOIN und Nicht-ANSI JOIN in T-SQL
In gespeicherten T-SQL-Prozeduren war die Nicht-ANSI-JOIN-Syntax schon immer üblich:
<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>
Es gibt Spekulationen, dass das Ersetzen durch die ANSI-92 JOIN-Syntax die Leistung verbessern könnte:
<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>
Sind sie gleich?
In diesem speziellen Beispiel ist die Ausführung beider Abfragen identisch. Allerdings hat die ANSI-92-Syntax mehrere Vorteile:
Argumente mit Nicht-ANSI-Syntax
Einige argumentieren, dass eine Nicht-ANSI-Syntax dabei hilft, SQL als kartesisches Produkt mit anschließender Filterung zu konzipieren. Obwohl diese Technik das Verständnis erleichtern kann, wird die bevorzugte ANSI-92-Syntax empfohlen, da sie im Allgemeinen klarer und standardkonformer ist. Die einzige Ausnahme von dieser Regel ist die Verwendung natürlicher Verknüpfungen, die aufgrund ihrer inhärenten Risiken gänzlich vermieden werden sollten.
Das obige ist der detaillierte Inhalt vonANSI JOIN vs. Nicht-ANSI JOIN in T-SQL: Was sind die Leistungsunterschiede?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!