Maison >base de données >tutoriel mysql >ANSI JOIN et non-ANSI JOIN dans T-SQL : quelles sont les différences de performances ?

ANSI JOIN et non-ANSI JOIN dans T-SQL : quelles sont les différences de performances ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-21 03:41:09416parcourir

ANSI JOIN vs. Non-ANSI JOIN in T-SQL: What are the Performance Differences?

Différence de performances entre ANSI JOIN et non-ANSI JOIN dans T-SQL

Dans les procédures stockées T-SQL, la syntaxe non-ANSI JOIN a toujours été courante :

<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>

Il y a des spéculations selon lesquelles le remplacement de cela par la syntaxe ANSI-92 JOIN pourrait améliorer les performances :

<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>

Sont-ils les mêmes ?

Dans cet exemple particulier, l'exécution des deux requêtes est identique. Cependant, la syntaxe ANSI-92 présente plusieurs avantages :

  • Clarté : La clause JOIN sépare la logique en relations et filtres, améliorant ainsi la lisibilité.
  • Éviter toute ambiguïté : Dans certains cas, les jointures externes non ANSI peuvent conduire à des résultats ambigus ou à des blocages. La syntaxe ANSI-92 élimine cette situation.
  • Conformité aux normes : ANSI-92 est la norme actuelle de l'industrie et a été adoptée par la plupart des développeurs et des outils de requête.
  • Éviter les produits cartésiens inattendus : La clause JOIN permet d'éviter les produits cartésiens inattendus.

Arguments avec une syntaxe non ANSI

Certains soutiennent que la syntaxe non ANSI aide à conceptualiser SQL comme un produit cartésien suivi d'un filtrage. Bien que cette technique puisse faciliter la compréhension, la syntaxe ANSI-92 préférée est recommandée car elle est généralement plus claire et conforme aux normes. La seule exception à cette règle concerne l’utilisation de jointures naturelles, qui doivent être totalement évitées en raison des risques inhérents.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn