2010-09-09 11 views
4

Comment SSMS calcule-t-il le coût de la requête (par rapport au lot) affiché lorsque vous choisissez d'inclure le plan d'exécution réel? Principalement, j'ai quelques fichiers XML de plan d'exécution enregistrés que je veux comparer les uns avec les autres. Il doit être en train de calculer ce nombre à partir des données contenues dans les fichiers XML, mais je ne vois pas comment cela est fait. Si j'ouvre un de mes fichiers .sqlplan qui contient plus d'une requête, il affichera ceux relatifs aux valeurs du lot correctement. Je veux juste faire ça moi-même.Coût des requêtes dans SQL Server Management Studio

Pour votre information: Pour obtenir ce XML, dans l'onglet Plan d'exécution, clic droit et sélectionnez "Afficher l'exécution XML plan ..."

Répondre

3

Chaque /ShowPlanXML/BatchSequence/Batch/Statements/StmtSimple a un attribut appelé StatementSubTreeCost.

Ils sont additionnés à travers leurs lots et leur part est calculée.

Vous pouvez les modifier manuellement dans le fichier XML, enregistrez-le avec l'extension SQLPLAN et ouvrez-le avec SSMS. Vous verrez que les coûts relatifs seront recalculés.

+0

C'est parfait, merci! Je pensais que c'était quelque chose comme ça, mais la première fois que j'ai essayé de faire ce calcul, ça ne s'est pas produit. Maintenant, je peux essayer mes compétences XPath et comparer à travers deux fichiers. – Bryan

3

C'est une longue histoire à raconter, en termes simples, le coût est la quantité de lecture physique et logique effectuée par la base de données en octets et le coût de la CPU. Pour chaque opération, les données doivent être récupérées si la lecture provient du disque dur, nous avons une lecture physique, dans d'autres cas, la base de données le lit dans le cache. Coût de l'opérateur estimé. Pour chaque étape, vous avez le coût de celui-ci et le coût de sous-arbre le cas échéant. le coût est alors calculé en pourcentage pour le plan d'exécution entier et présenté, ceci est Subtree Coût estimé ( Le coût total de l'optimiseur de requête pour l'exécution de cette opération et toutes les opérations précédentes dans la même sous-arbre.)

For more

Questions connexes