J'ai une requête T-SQL qui provoque des problèmes de performances. C'est un gros morceau mais la partie qui semble causer un problème est un simple joint gauche. Cela peut être résolu en supprimant la jointure gauche et en utilisant une sous-requête dans la sélection, mais cela ne me semble pas satisfaisant car je ne vois pas pourquoi on travaille rapidement et pas l'autre.Problème étrange avec la jointure gauche et la sous-requête dans la sélection
Il n'y a pas beaucoup de données impliquées et il y a des clés/index sur toutes les colonnes de jointure. La seule autre chose que je me demandais concernait les statistiques sur la base de données et si elles affectaient la performance.
Par exemple (N.B. c'est juste une simplification d'une requête beaucoup plus complexe
LENT
SELECT A.1,A.2,B.3 FROM A LEFT JOIN B ON A.ID = B.ID ...
FAST
SELECT A.1, A.2, (SELECT B.3 FROM B WHERE B.ID = A.ID) FROM A
Quelles sont les principales différences dans les plans d'exécution? –
Vous n'utilisez pas vraiment les nombres ordinaux pour choisir les colonnes êtes-vous? – HLGEM
comme hlgem dit, quel est le reste de la première requête? – DForck42