Exécuter l’Assistant Expérimentation de base de données à l’invite de commandes
Note
Cet outil a été mis hors service le 15 décembre 2024. Nous avons cessé de prendre en charge cet outil pour tous les problèmes qui se produisent et n’émettrons pas de correctifs de bogues ou de mises à jour supplémentaires.
Cet article explique comment capturer une trace dans l’Assistant Expérimentation de base de données (DEA), puis analyser les résultats, le tout depuis une invite de commande.
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, StartCaptureet StopCapture.
Démarrer une nouvelle capture de charge de travail à l’aide de la commande DEA
Pour démarrer 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 <Authentication 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 démarrez 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 |
Valeur 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 démarrer la capture. |
-e , --encrypt |
Valeur par défaut : True. Chiffrer la connexion à l’instance SQL Server. |
--trust |
Valeur par défaut : False. Approuver le 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 |
Valeur par défaut : 0. Mode d’authentification (0 = Windows, 1 = Authentification Sql). |
-u , --username |
Nom d’utilisateur pour la connexion à SQL Server. |
-p , --password |
Mot de passe pour la connexion à SQL Server. |
Rejouer une capture de charge de travail
Si vous utilisez Distributed Replay, procédez comme suit.
Connectez-vous à l’ordinateur du contrôleur Distributed Replay.
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"
Démarrez une capture de trace sur l’ordinateur cible exécutant SQL Server à l’aide de StartReplayCaptureTrace.sql.
Dans SQL Server Management Studio (SSMS), ouvrez <Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql.
Exécutez
Set @durationInMins=0
afin que la capture de trace ne s’arrête pas automatiquement après une heure spécifiée.Pour définir la taille de fichier maximale par fichier de trace, exécutez
Set @maxfilesize
. La taille recommandée est de 200 Mo.Modifiez
@Tracefile
pour définir un nom unique pour votre fichier de trace.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 sur l’ensemble du serveur est capturée.
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,dreplaychild3,dreplaychild4"
- Pour surveiller l’état, exécutez la commande suivante :
DReplay status -f 1
- Pour arrêter la relecture, par exemple si vous voyez que le pourcentage de passe est inférieur à prévu, exécutez la commande suivante :
DReplay cancel
Arrêtez la capture de trace sur l’instance SQL Server cible.
Dans SSMS, ouvrez <Dea_InstallPath>\Scripts\StopCaptureTrace.sql.
Modifiez
@Tracefile
pour correspondre au chemin du fichier de trace sur l’ordinateur cible exécutant SQL Server.Exécutez le script sur l’ordinateur cible exécutant SQL Server.
Utiliser InBuilt Replay
Si vous utilisez InBuilt Replay, vous n’aurez pas besoin de configurer Distributed Replay. La possibilité d’utiliser InBuilt Replay à l’invite de commandes sera bientôt disponible. 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 démarrer 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 graphique 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, fournissez le chemin d’accès au dossier dans lequel vous souhaitez stocker les fichiers d’événements localement. 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, fournissez le chemin d’accès au dossier dans lequel vous souhaitez stocker les fichiers d’événements localement. 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 |
Valeur 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. |
-e , --encrypt |
Valeur par défaut : True. Chiffrer la connexion à l’instance SQL Server. |
--trust |
Valeur par défaut : False. Approuver le certificat de serveur lors de la connexion à l’instance SQL Server. |
-m , --authmode |
Valeur par défaut : 0. Mode d’authentification (0 = Windows, 1 = Authentification Sql). |
-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. Si cela est utilisé, il doit également spécifier le --abu (Trace A Blob Url) |
--bb |
Valeur par défaut : False. L’emplacement de stockage de la trace B se trouve dans le blob. Si utilisée, doit également spécifier --bbu (Trace B Blob Url) |
--abu |
URL d'objet blob pour une instance A avec clé SAS. |
--bbu |
URL d’objet blob pour une instance B avec une clé SAP. |
Contenu connexe
- Vue d’ensemble de l’Assistant Expérimentation de base de données