J'étudie actuellement pour le test de certification Microsoft 70-433 (SQL 70-433) et je suis très confus quant à la mesure de la performance "coût de la requête".
Selon la documentation que j'ai pu trouver via Google, le coût de la requête est un pourcentage et représente le pourcentage du lot entier absorbé par une partie quelconque de celui-ci. Cela me semblait déjà un peu étrange, car je m'intéresse au mérite absolu d'une requête particulière plutôt qu'à son mérite par rapport à d'autres requêtes qui apparaissent à côté de celle-ci.
Mais ensuite, j'ai pensé, bon, peut-être que ce que vous êtes censé faire est de placer deux requêtes alternatives côte à côte, de les exécuter comme "un lot", puis celle qui a un coût inférieur à 50% est gagnante.
Mais la discussion sur le coût de la requête dans le chapitre 6, leçon 1 du kit de formation SQL 70-433 de Microsoft, ne semble pas avoir de lien avec cela.
Voici un exemple: Ils affichent une requête contenant deux sous-requêtes corrélées, puis l’améliorent en remplaçant les sous-requêtes par un OUTER APPLY. Le résultat: "Cette requête a un coût d'environ 76 $, alors que le coût de la première requête était le double, environ 151." Ils améliorent ensuite la requête encore davantage et réduisent le coût de 76 à 3,6. Ils n'impliquent pas que ces chiffres sont des pourcentages, alors qu'ils impliquent qu'il s'agit de chiffres absolus qui se rapportent à la requête en tant qu'objet autonome, sans référence à aucune autre requête. Et de toute façon, comment la première requête pourrait-elle coûter 151%?
Plus loin dans le chapitre, ils présentent une capture d'écran d'un plan d'exécution en trois parties. Le premier indique "Coût: 0%", le second indique "Coût: 1%" et le dernier indique "Coût: 99%", mais le texte (du livre lui-même) sous la capture d'écran "Le coût de cette requête est de 0,56" . Je suppose qu'ils signifient un autre type de coût, mais je ne trouve aucune référence à cela ailleurs.
Quelqu'un peut aider? Je suis complètement confus.