Showplans XML

Dans Microsoft SQL Server, une sortie de plan d'exécution Showplan peut être générée au format XML selon diverses méthodes. Une sortie Showplan au format XML peut être transférée d'un ordinateur à une autre et donc restituée sur n'importe quel ordinateur, même sur des ordinateurs où SQL Server n'est pas installé. Une sortie Showplan au format XML peut également être traitée par programme à l'aide de technologies XML, par exemple XPath, XQuery, XSLT, SAX, DOM, etc. Le traitement de Showplan XML est pris en charge dans SQL Server, qui contient un moteur d'évaluation de requêtes intégré pour XPath et XQuery.

Vous pouvez générer une sortie Showplan XML à l'aide des méthodes suivantes :

  • sélection de Afficher le plan d'exécution estimé ou de Inclure le plan d'exécution réel à partir de la barre d'outils de l'éditeur de requête dans SQL Server Management Studio ;

  • utilisation des options SHOWPLAN_XML et STATISTICS XML de l'instruction Showplan SET de Transact-SQL ;

  • sélection des classes d'événements Showplan XML, Showplan XML for Query Compile et Showplan XML Statistics Profile du SQL Server Profiler pour le suivi ;

  • utilisation de la fonction de gestion dynamique sys.dm_exec_query_plan.

Des Showplans XML sont retournés dans le type de données nvarchar(max) pour toutes ces méthodes, sauf en cas d'utilisation de sys.dm_exec_query_plan. Des Showplans XML sont retournés dans le type de données xml lorsque vous utilisez cette vue de gestion dynamique.

Le schéma XML pour Showplan est disponible avec les fichiers d'installation de SQL Server à l'emplacement suivant :

C:\Program Files\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd

Notes

Si l'optimiseur de requête termine prématurément sa tâche, l'attribut StatementOptmEarlyAbortReason est retourné pour l'élément StmtSimple dans la sortie Showplan XML. Les valeurs pouvant s'afficher pour cet attribut sont TimeOut, GoodEnoughPlanFound et MemoryLimitExceeded. Si TimeOut ou GoodEnoughPlanFound sont retournées, aucune action n'est nécessaire. Le plan d'exécution Showplan retourné contient des résultats corrects.

Si MemoryLimitExceeded est renvoyée pour l'attribut StatementOptmEarlyAbortReason, le plan d'exécution Showplan produit au format XML est toujours correct, mais pas obligatoirement optimal. Utilisez l'une des méthodes suivantes pour accroître la mémoire disponible. 1) Diminuer la charge sur le serveur. 2) Augmenter la mémoire disponible pour SQL Server. Pour plus d'informations, consultez Gestion de la mémoire pour des bases de données volumineuses. 3) Activer l'option max server memory qui est définie avec la procédure sp_configure, puis augmenter sa valeur si elle n'est pas assez élevée. Pour plus d'informations, consultez Options de mémoire du serveur.

À propos du schéma Showplan XML

La désignation de version du schéma Showplan XML est composée de deux parties, telles que m.n, où m est le numéro de version principale et n le numéro de version mineure. Par exemple, « Version 2.5 ». Ce numéro de version apparaît dans l'élément racine du document du schéma Showplan XML. Par exemple : version="0.5"

Compatibilité ascendante des schémas Showplan XML

Lorsque le numéro de la version principale s'incrémente, la nouvelle sortie Showplan XML risque de ne pas être valide par rapport à l'ancien schéma. Cependant, si le numéro de version mineure s'incrémente, il n'y a pas d'effet. Par exemple, si vous avez généré la sortie Showplan XML avec la version du schéma 0.5, cette sortie est valide par rapport au schéma Showplan XML 0.6.

Codage de Showplans XML

SQL Server envoie la sortie du Showplan XML au client au format Unicode en utilisant deux octets pour chaque caractère envoyé. Les règles de codage sont les suivantes :

  • If (char >= 0x0020 && char <= 0xD7FF) or (char == 0x0009) or 

    (char == 0x000A) or (char == 0x000D) or (char >= 0xE000 && char <= 0xFFFD)

    then envoyer le caractère sur deux octets, else envoyer '?'

  • Les caractères tabulation, nouvelle ligne et saut de ligne sont codés de la façon suivante :

    • \t est codé en tant que '&#x9;'

    • \n est codé en tant que '&#xa;'

    • \r est codé en tant que '&#xd;'

Enregistrement d'une sortie Showplan XML dans un fichier

Après que la sortie Showplan a été générée à l'aide des instructions SET Transact-SQL SHOWPLAN_XML ou STATISTICS XML, vous pouvez enregistrer la sortie dans un fichier avec l'extension .sqlplan. Par exemple, MyXMLShowplan.sqlplan. Vous pouvez ouvrir et afficher ces fichiers .sqlplan dans SQL Server Management Studio. Pour plus d'informations, consultez Procédure : enregistrer un plan d'exécution au format XML.