J'ai pu constater dans certains cas assez voire très rares et alors que l'on récupère des lignes qui sont toutes uniques, l'emploie de DISTINCT améliorait les performance (et ce de façon très importante).
Je n'ai pas d'explication (j'ai pourtant cherché) mais dans les changements que l'emploie de DISTINCT provoque dans le query plan, tant à l'exécution du plan qu'à son estimation (et c'est là que c'est fou*) il y a un gouffre de performance à l'avantage de l'emploie de DISTINCT.
Cela est tout à fait anormal mais c'est bon à savoir (surtout que vous ne lirez pas ceci partout) car puisque ne coûtant que 8 lettre, on peut se permettre d'expérimenté sur nos query les plus complexes (et peut-être avoir de plaisantes surprises).
* SQL Server établit plusieurs plans selon son IA et en retient le meilleur candidat.
Partager