Exécuter l’Assistant Expérimentation de base de données à l’invite de commandes

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.

Cet article décrit comment capturer une trace dans l’Assistant Expérimentation de base de données (DEA), puis analyser les résultats à partir d’une invite de commandes.

Remarque

Pour en savoir plus sur chaque opération DEA, exécutez la commande suivante :

Deacmd.exe -o <operation> --help

Un nom d’opération est requis. Les opérations valides sont Analysis, StartCapture et StopCapture.

Lancer une nouvelle capture de charge de travail à l’aide de la commande DEA

Pour lancer une nouvelle capture de charge de travail, à l’invite de commandes, exécutez la commande suivante :

Deacmd.exe -o StartCapture -n <Trace FileName> -x <Trace Format> -h <SQLServerInstance> -f <database name> -e <Encrypt Connection> -m <Authetication Mode> -u <user name> -p <password> -l <Location of Output Folder> -d <duration>

Par exemple :

Deacmd.exe -o StartCapture -n sql2008capture -x 0 -h localhost -f adventureworks -e --trust -m 0 -l c:\test  -d 60

Lorsque vous lancez une nouvelle capture de charge de travail avec la commande Deacmd.exe, vous pouvez utiliser les options suivantes :

Option Description
-n, --name Obligatoire. Nom du fichier de trace.
-x, --format Obligatoire. Format de la trace (0 = Trace, 1 = XEvents).
-d, --duration Obligatoire. Durée maximale de la capture, en minutes.
-l, --location Obligatoire. Emplacement du dossier de sortie pour stocker des fichiers de trace ou XEvent sur l’ordinateur hôte.
-t, --type Par défaut : 0. Type de SQL Server (0 = SqlServer, 1 = AzureSQLDB, 2 = Azure SQL Managed Instance).
-h, --host Obligatoire. Nom d’hôte ou nom d’instance SQL Server pour lancer la capture.
-e, --encrypt Valeur par défaut : True Chiffrer la connexion sur l’instance SQL Server.
--trust Valeur par défaut : False. Faire confiance au certificat de serveur lors de la connexion à l’instance SQL Server.
-f, --databasename Nom de la base de données pour filtrer vos traces, s’il n’est pas spécifié, la capture démarre sur toutes les bases de données.
-m, --authmode Par défaut : 0. Mode d’authentification (0 = Windows, 1 = Sql Authentication).
-u, --username Nom d’utilisateur pour la connexion à SQL Server.
-p, --password Mot de passe pour la connexion à SQL Server.

Relire une capture de charge de travail

Si vous utilisez Distributed Replay, procédez comme suit.

  1. Connectez-vous à l’ordinateur contrôleur de Distributed Replay.

  2. Pour convertir la trace de charge de travail que vous avez capturée à l’aide de la commande DEA en fichier IRF, exécutez la commande suivante :

    DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
    
  3. Lancez une capture de trace sur l’ordinateur cible exécutant SQL Server à l’aide de StartReplayCaptureTrace.sql.

    a. Dans SQL Server Management Studio (SSMS), ouvrez <Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql.

    b. Exécutez Set @durationInMins=0 afin que la capture de trace ne s’arrête pas automatiquement après un laps de temps spécifié.

    c. Pour définir la taille de fichier maximale par fichier de trace, exécutez Set @maxfilesize. La taille recommandée est de 200 Mo.

    d. Modifiez @Tracefile pour définir un nom unique pour votre fichier de trace.

    e. Modifiez @dbname pour spécifier un nom de base de données si la charge de travail doit être capturée uniquement sur une base de données spécifique. Par défaut, la charge de travail est capturée sur l’ensemble du serveur.

  4. Pour relire le fichier IRF sur l’instance SQL Server cible, exécutez la commande suivante :

    DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaycild3,dreplaychild4"
    

    a. Pour surveiller l’état, exécutez la commande suivante :

    DReplay status -f 1
    

    b. Pour arrêter la relecture, par exemple si vous voyez que le pourcentage de réussite est inférieur à vos attentes, exécutez la commande suivante :

    DReplay cancel
    
  5. Arrêtez la capture de trace sur l’instance SQL Server cible.

  6. Dans SSMS, ouvrez <Dea_InstallPath>\Scripts\StopCaptureTrace.sql.

  7. Modifiez @Tracefile pour correspondre au chemin d’accès du fichier de trace sur l’ordinateur cible exécutant SQL Server.

  8. Exécutez le script sur l’ordinateur cible exécutant SQL Server.

Utilisation de InBuilt Replay

Si vous utilisez InBuilt Replay, vous n’avez pas besoin de configurer Distributed Replay. Il est possible d’utiliser InBuilt Replay à l’invite de commandes. Actuellement, vous pouvez utiliser notre interface utilisateur graphique pour exécuter la relecture à l’aide de InBuilt Replay.

Analyser les traces à l’aide de la commande DEA

Pour lancer une nouvelle analyse de trace, exécutez la commande suivante :

Deacmd.exe -o analysis -a <Target1 trace filepath> -b <Target2 trace filepath> -r reportname -h <SQLserverInstance> -e <encryptconnection> -u <username>

Par exemple :

Deacmd.exe -o analysis -a C:\Trace\SQL2008Source\Trace.trc -b C:\ Trace\SQL2014Trace\Trace.trc -r upgrade20082014 -h localhost -e

Pour afficher les rapports d’analyse de ces fichiers de trace, vous devez utiliser l’interface utilisateur graphique pour afficher les graphiques et les métriques organisées. Toutefois, la base de données d’analyse est écrite dans l’instance SQL Server spécifiée. Vous pouvez donc également interroger directement les tables d’analyse générées.

Lors de l’analyse des traces à l’aide de la commande DEA, vous pouvez utiliser les options suivantes :

Option Description
-a, --traceA Obligatoire. Chemin d’accès au fichier d’événements de l’instance A. Exemple : C:\traces\Sql2008trace.trc. S’il existe un lot de fichiers, sélectionnez le premier fichier et DEA vérifie automatiquement les fichiers de substitution. Si les fichiers se trouvent dans un objet blob, indiquez le chemin d’accès au dossier dans lequel vous souhaitez stocker localement les fichiers d’événements. Exemple : C:\traces\
-b, --traceB Obligatoire. Chemin d’accès au fichier d’événements de l’instance B. Exemple : C:\traces\Sql2014trace.trc. S’il existe un lot de fichiers, sélectionnez le premier fichier et DEA vérifie automatiquement les fichiers de substitution. Si les fichiers se trouvent dans un objet blob, indiquez le chemin d’accès au dossier dans lequel vous souhaitez stocker localement les fichiers d’événements. Exemple : C:\traces\
-r, --ReportName Obligatoire. Nom de l’analyse actuelle. Le rapport d’analyse généré est identifié par ce nom.
-t, --type Par défaut : 0. Type de SQL Server (0 = SqlServer, 1 = AzureSQLDB, 2 = Azure SQL Managed Instance).
-h, --host Obligatoire. Nom d’hôte ou nom de l’instance SQL Server.
-e, --encrypt Valeur par défaut : True Chiffrer la connexion sur l’instance SQL Server.
--trust Valeur par défaut : False. Faire confiance au certificat de serveur lors de la connexion à l’instance SQL Server.
-m, --authmode Par défaut : 0. Mode d’authentification (0 = Windows, 1 = Sql Authentication).
-u, --username Nom d’utilisateur pour la connexion à SQL Server.
--p Mot de passe pour la connexion à SQL Server.
--ab Valeur par défaut : False. L’emplacement de stockage de la trace A se trouve dans l’objet blob. En cas d’utilisation, vous devez également spécifier --abu (Trace A Blob Url)
--bb Valeur par défaut : False. L’emplacement de stockage de la trace B se trouve dans l’objet blob. En cas d’utilisation, vous devez également spécifier --bbu (Trace B Blob Url)
--abu URL d’objet blob pour l’instance A avec une clé SAP.
--bbu URL d’objet blob pour l’instance B avec une clé SAP.

Voir aussi