Demi jointures : IN, EXISTS ou JOIN ?

La norme SQL évolue : tirez le meilleur d'un SGBD qui la respecte en écrivant du SQL moderne avec en complément PL/pgSQL, php, java etc.
Répondre
Phil
Administrateur du site
Messages : 196
Enregistré le : mar. 1 sept. 2015 00:38
Localisation : France
Contact :

Demi jointures : IN, EXISTS ou JOIN ?

Message par Phil » mar. 11 déc. 2018 23:22

Merci à Marcos pour sa question :

"Est-il plus performant d'utiliser IN ou de faire une jointure avec JOIN ?"

Réponse :

Ces syntaxes n'ont pas la même utilisation. Dans le cas d'une demi jointure, il est préférable d'utiliser une syntaxe basée sur IN ou EXISTS : https://pgphil.ovh/semi_join_11_01.php

Cas particulier, spécialement avec Oracle Database. Si dans une syntaxe IN (...), le (...) n'est pas une sous-requête sur une table mais une liste comportant un nombre important et variable de valeurs alors il est préférable de les charger dans une table temporaire afin notamment d'éviter les "hard parse" à chaque exécution.
Cdlt. Phil - pgphil.ovh

Répondre