Capturer une trace dans l’Assistant Expérimentation de base de données
Remarque
Cet outil sera mis hors service le 15 décembre 2024. Nous cesserons de prendre en charge cet outil pour tous les problèmes qui pourront survenir et nous ne publierons plus de correctifs de bogues ni de mises à jour supplémentaires.
Vous pouvez utiliser l’Assistant Expérimentation de base de données (DEA) pour créer un fichier de trace avec un journal des événements de serveur capturés. Un événement de serveur capturé est un événement qui se produit sur un serveur spécifique pendant une période spécifique. Une capture de trace doit être exécutée une fois par serveur.
Avant de lancer une capture de trace, assurez-vous de sauvegarder toutes les bases de données cibles.
La mise en cache des requêtes dans SQL Server peut affecter les résultats de l’évaluation. Nous vous recommandons de redémarrer le service SQL Server (MSSQLSERVER) dans l’application de services pour améliorer la cohérence des résultats de l’évaluation.
Configurer une capture de trace
Dans DEA, dans la barre de navigation de gauche, sélectionnez l’icône représentant un appareil photo, puis, sur la page Toutes les captures, sélectionnez Nouvelle capture.
Sur la page Nouvelle capture, sous Détails de la capture, saisissez ou sélectionnez les informations suivantes :
Nom de la capture : saisissez un nom pour le fichier de trace de votre capture.
Format : spécifiez le format (Trace ou XEvents) de la capture.
Durée : sélectionnez la durée (en minutes) durant laquelle vous souhaitez exécuter la capture de trace.
Emplacement de capture : sélectionnez le chemin de destination du fichier de trace.
Remarque
Le chemin d’accès au fichier de trace doit se trouver sur l’ordinateur exécutant SQL Server. Si le service SQL Server n’est pas défini pour un compte spécifique, le service peut avoir besoin d’autorisations d’écriture dans le dossier spécifié pour que le fichier de trace soit écrit.
Vérifiez que vous avez effectué une sauvegarde en cochant la case Oui, j’ai effectué manuellement la sauvegarde....
Sous Détails de la capture, saisissez ou sélectionnez les informations suivantes :
- Type de serveur : spécifiez le type de SQL Server (SqlServer, AzureSqlDb, AzureSqlManagedInstance).
- Nom du serveur : spécifiez le nom du serveur ou l’adresse IP de votre serveur SQL Server.
- Type d’authentification : pour le type d’authentification, choisissez Windows.
- Nom de la base de données : saisissez un nom pour une base de données sur laquelle lancer une trace de base de données. Si vous ne spécifiez pas de base de données, la trace est capturée sur toutes les bases de données du serveur.
Sélectionnez ou désélectionnez les cases Chiffrer la connexion et Faire confiance au certificat du serveur en fonction de votre scénario.
Lancer la capture de trace
Une fois que vous avez saisi ou sélectionné les informations requises, sélectionnez Démarrer pour lancer la capture de trace.
Si les informations que vous avez saisies sont valides, le processus de capture de trace commence. Sinon, les zones de texte ayant des entrées non valides sont mises en surbrillance en rouge. Si vous rencontrez des erreurs, corrigez les entrées nécessaires, puis sélectionnez à nouveau Démarrer.
Pendant l’exécution de la capture de trace, sous Détails de capture, l’état et la progression du processus de capture de trace s’affichent.
Lorsque l’exécution de la capture de trace est terminée, le nouveau fichier de trace (.trc) est enregistré dans l’emplacement de capture que vous avez spécifié lors de la configuration initiale.
Le fichier de trace inclut les résultats de trace de l’activité d’une base de données SQL Server. Les fichiers .trc sont conçus pour fournir plus d’informations sur les erreurs détectées et signalées par SQL Server.
Questions fréquentes sur la capture de trace
Voici quelques questions fréquemment posées sur la capture de trace dans DEA.
Q : Quels événements sont capturés lorsque j’exécute une capture de trace sur une base de données de production ?
Le tableau suivant répertorie les événements et les données de colonne correspondantes collectées par DEA pour les traces :
Nom de l'événement | Données de texte (1) | Données binaires (2) | ID de base de données (3) | Nom d’hôte (8) | Nom de l’application (10) | Nom de connexion (11) | SPID (12) | Heure de début (14) | Heure de fin (15) | Nom de la base de données (35) | Séquence d’événements (51) | IsSystem (60) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
RPC:Completed (10) | * | * | * | * | * | * | * | * | * | * | * | |
RPC:Starting (11) | * | * | * | * | * | * | * | * | * | * | ||
RPC Output Parameter (100) | * | * | * | * | * | * | * | * | * | * | ||
SQL:BatchCompleted (12) | * | * | * | * | * | * | * | * | * | * | * | |
SQL:BatchStarting (13) | * | * | * | * | * | * | * | * | * | * | ||
Audit Login (14) | * | * | * | * | * | * | * | * | * | * | * | |
Audit Logout (15) | * | * | * | * | * | * | * | * | * | * | * | |
ExistingConnection (17) | * | * | * | * | * | * | * | * | * | * | * | |
CursorOpen (53) | * | * | * | * | * | * | * | * | * | * | ||
CursorPrepare (70) | * | * | * | * | * | * | * | * | * | * | ||
Prepare SQL (71) | * | * | * | * | * | * | * | * | * | |||
Exec Prepared SQL (72) | * | * | * | * | * | * | * | * | * | |||
CursorExecute (74) | * | * | * | * | * | * | * | * | * | * | ||
CursorUnprepare (77) | * | * | * | * | * | * | * | * | * | * | ||
CursorClose (78) | * | * | * | * | * | * | * | * | * | * |
Q : Existe-t-il un effet sur les performances de mon serveur de production lorsque la capture de trace est en cours d’exécution ?
Oui, il existe un effet minimal sur les performances pendant la collecte des traces. Dans nos tests, nous avons trouvé environ 3 % de sollicitation de la mémoire.
Q : Quel type d’autorisations sont nécessaires pour capturer des traces sur une charge de travail de production ?
- L’utilisateur Windows qui exécute l’opération de trace dans l’application DEA doit disposer de droits d’administrateur système sur l’ordinateur exécutant SQL Server.
- Le compte de service utilisé sur l’ordinateur exécutant SQL Server doit avoir un accès en écriture au chemin du fichier de trace spécifié.
Q : Puis-je capturer des traces pour l’ensemble du serveur ou uniquement sur une seule base de données ?
Vous pouvez utiliser DEA pour capturer des traces pour toutes les bases de données du serveur ou pour une seule base de données.
Q : J’ai un serveur lié configuré dans mon environnement de production. Ces requêtes s’affichent-elles dans les traces ?
Si vous exécutez une capture de trace sur l’ensemble du serveur, la trace capture toutes les requêtes, y compris les requêtes de serveur lié. Pour exécuter une capture de trace sur l’ensemble du serveur, ne remplissez pas la zone Nom de la base de données sous Nouvelle capture.
Q : Quelle est la durée minimale recommandée pour les traces de charge de travail de production ?
Nous vous recommandons de choisir une durée qui représente le mieux l’intégralité de votre charge de travail. Ainsi, l’analyse s’exécute sur toutes les requêtes de votre charge de travail.
Q : Quelle est l’importance d’effectuer une sauvegarde de base de données juste avant de lancer une capture de trace ?
Avant de lancer une capture de trace, assurez-vous de sauvegarder toutes vos bases de données cibles. La trace capturée dans Cible 1 et Cible 2 est relue. Si l’état de la base de données n’est pas le même, les résultats de l’expérimentation sont asymétriques.
Q : Puis-je collecter des événements XEvents plutôt que des traces, et puis-je relire ces événements XEvents ?
Oui. DEA prend en charge XEvents. Téléchargez la dernière version de DEA et essayez-la.
Résoudre les problèmes liés aux captures de trace
Si vous voyez une erreur lors de l’exécution d’une capture de trace, vérifiez que :
- Le nom de l’ordinateur exécutant SQL Server est valide. Pour vérifier cela, essayez de vous connecter à l’ordinateur qui exécute SQL Server à l’aide de SQL Server Management Studio (SSMS).
- Votre configuration de pare-feu ne bloque pas les connexions à l’ordinateur qui exécute SQL Server.
- L’utilisateur dispose des autorisations répertoriées dans la listes des questions fréquentes sur la relecture.
- Le nom de la trace ne suit pas la convention de substitution standard (Capture_1). Essayez plutôt des noms de trace comme Capture_1A ou Capture1.
Voici quelques erreurs que vous pouvez rencontrer et des solutions pour les résoudre :
Erreurs possibles | Solution |
---|---|
Impossible de lancer la trace sur le serveur SQL Server cible, vérifiez si vous disposez des autorisations requises et que le compte SQL Server dispose d’un accès en écriture au chemin d’accès au fichier de trace spécifié Code d’erreur SQL (53) | L’utilisateur exécutant l’outil DEA doit avoir accès à l’ordinateur exécutant SQL Server. L’utilisateur doit disposer du rôle d’administrateur système. |
Impossible de lancer la trace sur le serveur SQL Server cible, vérifiez si vous disposez des autorisations requises et que le compte SQL Server dispose d’un accès en écriture au chemin d’accès au fichier de trace spécifié Code d’erreur SQL (19062) | Le chemin d’accès au fichier de trace spécifié peut ne pas exister ou le dossier ne dispose pas d’autorisations d’écriture pour le compte sous lequel les services SQL Server s’exécutent (par exemple, NETWORK SERVICE). Le chemin d’accès doit exister, et il doit disposer des autorisations requises pour que la trace démarre. |
Une trace DEA s’exécute actuellement sur le serveur cible. | Une trace active est déjà en cours d’exécution sur le serveur cible. Vous ne pouvez pas lancer une nouvelle trace lorsqu’une trace est déjà en cours d’exécution à l’échelle du serveur. |
Impossible d’ouvrir la base de données demandée pour capturer la trace. Cette erreur peut être due à un nom de base de données incorrect. | La base de données spécifiée n’existe pas ou l’utilisateur actuel ne peut pas y accéder. Utilisez le nom correct de la base de données. |
Si vous voyez d’autres erreurs étiquetées Code d’erreur SQL, consultez Erreurs du moteur de base de données pour obtenir des descriptions détaillées.
Voir aussi
- Pour savoir comment configurer les outils Distributed Replay dans SQL Server avant de relire une trace capturée, consultez Configurer Distributed Replay pour l’Assistant Expérimentation de base de données.