Capturer une trace dans Assistant Expérimentation de base de données

Vous pouvez utiliser 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 démarrer une capture de trace, veillez à sauvegarder toutes les bases de données cibles.

La mise en cache des requêtes dans SQL Server peut affecter les résultats d’é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 d’évaluation.

Configurer une capture de trace

  1. Dans DEA, dans la barre de navigation de gauche, sélectionnez l’icône de l’appareil photo, puis, dans la page Toutes les captures , sélectionnez Nouvelle capture.

    Create a capture in DEA

  2. Dans la page Nouvelle capture, sous Détails de capture, entrez ou sélectionnez les informations suivantes :

    • Nom de la capture : entrez 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) que 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.

  3. Vérifiez que vous avez effectué une sauvegarde en sélectionnant oui, j’ai effectué manuellement la sauvegarde... case activée zone.

  4. Sous Capture, entrez 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, sélectionnez Windows.
    • Nom de la base de données : entrez un nom pour une base de données sur laquelle démarrer 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 sur le serveur.
  5. Sélectionnez ou désélectionnez les zones chiffrer la connexion et le certificat de serveur d’approbation case activée en fonction de votre scénario.

    New Capture page

Démarrer la capture de trace

  1. Après avoir entré ou sélectionné les informations requises, sélectionnez Démarrer pour lancer la capture de trace.

    Si les informations que vous avez entrées sont valides, le processus de capture de trace commence. Sinon, les zones de texte avec 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 Recommencer .

    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.

    Monitor capture progress

  2. Lorsque la capture de trace est terminée, le nouveau fichier de trace (.trc) est enregistré à l’emplacement de capture que vous avez spécifique lors de la configuration initiale.

    Completed trace capture

    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.

Forum aux questions 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 quand 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 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) * * * * * * * * * *
Paramètre de sortie RPC (100) * * * * * * * * * *
SQL :BatchCompleted (12) * * * * * * * * * * *
SQL :BatchStarting (13) * * * * * * * * * *
Audit Login (14) * * * * * * * * * * *
Déconnexion d’audit (15) * * * * * * * * * * *
Existant Connecter ion (17) * * * * * * * * * * *
CursorOpen (53) * * * * * * * * * *
CursorPrepare (70) * * * * * * * * * *
Préparer SQL (71) * * * * * * * * *
SQL préparé par Exec (72) * * * * * * * * *
CursorExecute (74) * * * * * * * * * *
CursorUnprepare (77) * * * * * * * * * *
CursorClose (78) * * * * * * * * * *

Q : Existe-t-il un effet de performances sur mon serveur de production lorsque la capture de trace est en cours d’exécution ?

Oui, il existe un effet minimal de performances pendant la collecte de traces. Dans nos tests, nous avons trouvé environ 3 % de pression de 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 d’accès au fichier de trace spécifié.

Q : Puis-je capturer des traces pour l’ensemble du serveur ou uniquement sur une base de données unique ?

Vous pouvez utiliser DEA pour capturer des traces pour toutes les bases de données du serveur ou pour une base de données unique.

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 pour 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 pour l’ensemble du serveur, laissez la zone Nom de la base de données sous Nouvelle capture vide.

Q : Quelle est la durée minimale recommandée pour les traces de charge de travail de production ?

Nous vous recommandons de choisir une heure 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 démarrer une capture de trace ?

Avant de commencer une capture de trace, veillez à sauvegarder toutes vos bases de données cibles. La trace capturée dans Target 1 et Target 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 XEvents au lieu de traces et puis-je relire des é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 :

  • Nom de l’ordinateur exécutant SQL Server valide. Pour confirmer, essayez de vous connecter à l’ordinateur exécutant SQL Server à l’aide de SQL Server Management Studio (SSMS).
  • Votre configuration de pare-feu ne bloque pas les connexions à l’ordinateur exécutant SQL Server.
  • L’utilisateur dispose des autorisations répertoriées dans le FORUM aux questions de 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 possibles que vous pouvez voir et des solutions pour les résoudre :

Erreurs possibles Solution
Impossible de démarrer la trace sur le serveur SQL Server cible, case activée 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 être affecté au rôle sysadmin.
Impossible de démarrer la trace sur le serveur SQL Server cible, case activée si vous disposez des autorisations requises et que le compte SQL Server dispose d’un accès en écriture au code d’erreur Sql du chemin d’accès au fichier de trace spécifié (19062) Le chemin d’accès de trace spécifié peut ne pas exister ou le dossier n’a 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 démarrer une nouvelle trace lorsqu’une trace à l’échelle du serveur est déjà en cours d’exécution.
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 n’est pas accessible à l’utilisateur actuel. Utilisez le nom correct de la base de données.

Si vous voyez d’autres erreurs étiquetées Code d’erreur Sql, consultez Moteur de base de données Erreurs pour obtenir des descriptions détaillées.

Voir aussi