Meilleure stratégie dans SQL
https://softwareengineering.stackexchange.com/questions/196890
Question
Récemment, un collègue m'a dit qu'il n'était pas conseillé de faire des conditions dans le Rejoignez les clauses. Au lieu de cela, il a suggéré de faire des conditions dans le où la clause. Il m'a dit que le moteur SQL avait été optimisé pour cette manière.
Voici un exemple simple pour illustrer ma question. Dans ce cas, je pense que cela ferait une différence.
Quelle stratégie est la meilleure? Et pourquoi?
Supposons que nous avons un paramètre Nammé @user_id
.
Première stratégie
SELECT role.name
FROM user_role
INNER JOIN user ON user_role.user_id = user.id AND
user_role.user_id = @user_id
INNER JOIN role ON user_role.role_id = role.id
Deuxième stratégie
SELECT role.name
FROM user_role
INNER JOIN user ON user_role.user_id = user.id
INNER JOIN role ON user_role.role_id = role.id
WHERE user.id = @user_id
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à softwareengineering.stackexchange