Perbezaan prestasi antara ANSI JOIN dan bukan ANSI JOIN dalam T-SQL
Dalam prosedur tersimpan T-SQL, sintaks bukan ANSI JOIN sentiasa menjadi perkara biasa:
<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>
Terdapat spekulasi bahawa menggantikan ini dengan sintaks ANSI-92 JOIN boleh meningkatkan prestasi:
<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>
Adakah mereka sama?
Dalam contoh khusus ini, pelaksanaan kedua-dua pertanyaan adalah sama. Walau bagaimanapun, sintaks ANSI-92 mempunyai beberapa kelebihan:
Argumen dengan sintaks bukan ANSI
Sesetengah berpendapat bahawa sintaks bukan ANSI membantu mengkonseptualisasikan SQL sebagai produk Cartesian diikuti dengan penapisan. Walaupun teknik ini boleh membantu pemahaman, sintaks ANSI-92 pilihan adalah disyorkan kerana ia biasanya lebih jelas dan mematuhi piawaian. Satu-satunya pengecualian kepada peraturan ini ialah apabila menggunakan gabungan semula jadi, yang harus dielakkan sepenuhnya kerana risiko yang wujud.
Atas ialah kandungan terperinci ANSI JOIN lwn. Bukan ANSI JOIN dalam T-SQL: Apakah Perbezaan Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!