Partilhar via


Executar o Assistente para Experimentos de Banco de Dados em um prompt de comando

Observação

Esta ferramenta será desativada em 15 de dezembro de 2024. Deixaremos de oferecer suporte para essa ferramenta relativo a qualquer problema que surgir e não publicaremos nenhuma correção de bugs ou atualizações adicionais.

Este artigo descreve como capturar um rastreamento no Assistente para Experimentos de Banco de Dados (DEA) e, em seguida, analisar os resultados, tudo de um prompt de comando.

Observação

Para saber mais sobre cada operação do DEA, execute o seguinte comando:

Deacmd.exe -o <operation> --help

É necessário ter um nome de operação. As operações válidas são Analysis, StartCapture e StopCapture.

Iniciar uma nova captura de carga de trabalho usando o comando DEA

Para iniciar uma nova captura de carga de trabalho, em um prompt de comando, execute o seguinte comando:

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>

Por exemplo:

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

Ao iniciar uma nova captura de carga de trabalho com o comando Deacmd.exe, você pode usar as seguintes opções:

Opção Descrição
-n, --name Obrigatória. Nome do arquivo de rastreamento.
-x, --format Obrigatória. Formato do rastreamento (0 = Trace, 1 = XEvents).
-d, --duration Obrigatória. A duração máxima para a captura, em minutos.
-l, --location Obrigatória. Local da pasta de saída para armazenar arquivos de rastreamento ou XEvent no computador host.
-t, --type Padrão: 0. Tipo do SQL Server (0 = SqlServer, 1 = AzureSQLDB, 2 = Instância Gerenciada de SQL do Azure).
-h, --host Obrigatória. Nome do host do SQL Server ou nome da instância para iniciar a captura.
-e, --encrypt Padrão: Verdadeiro. Criptografar conexões à instância do SQL Server.
--trust Padrão: false. Confiar no certificado do servidor ao se conectar à instância do SQL Server.
-f, --databasename Nome do banco de dados para filtrar seus rastreamentos, se não for especificado, a captura será iniciada em todos os bancos de dados.
-m, --authmode Padrão: 0. Modo de autenticação (0 = Windows, 1 = Sql Authentication).
-u, --username Nome de usuário para conexão com o SQL Server.
-p, --password A senha usada para se conectar ao SQL Server.

Repetir uma captura de carga de trabalho

Se você estiver usando o Distributed Replay, execute as etapas a seguir.

  1. Para conectar-se ao computador controlador do Distributed Replay.

  2. Para converter o rastreamento de carga de trabalho que você capturou usando o comando DEA em um arquivo IRF, execute o seguinte comando:

    DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
    
  3. Inicie uma captura de rastreamento no computador de destino que executa o SQL Server usando StartReplayCaptureTrace.sql.

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

    b. Execute Set @durationInMins=0 para que a captura de rastreamento não pare automaticamente após um tempo especificado.

    c. Para definir o tamanho máximo de arquivo por arquivo de rastreamento, execute Set @maxfilesize. O tamanho recomendável é 200 MB.

    d. Edite @Tracefile para definir um nome exclusivo para o arquivo de rastreamento.

    e. Edite @dbname para especificar um nome de banco de dados se a carga de trabalho precisar ser capturada somente em um banco de dados específico. Por padrão, a carga de trabalho em todo o servidor é capturada.

  4. Para reproduzir o arquivo IRF na instância do SQL Server de destino, execute o seguinte comando:

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

    a. Para monitorar o status, execute o comando a seguir:

    DReplay status -f 1
    

    b. Para interromper a repetição, por exemplo, se você vir que a porcentagem de aprovação é menor do que o esperado, execute o seguinte comando:

    DReplay cancel
    
  5. Pare a captura de rastreamento na instância do SQL Server de destino.

  6. No SSMS, abra <Dea_InstallPath>\Scripts\StopCaptureTrace.sql.

  7. Edite @Tracefile para corresponder ao caminho do arquivo de rastreamento no computador de destino que executa o SQL Server.

  8. Execute o script no computador de destino que executa o SQL Server.

Usando o InBuilt Replay

Se você estiver usando o InBuilt Replay, não precisará configurar o Distributed Replay. A possibilidade de usar o InBuilt Replay no prompt de comando está a caminho. Atualmente, você pode usar nossa GUI para executar o replay usando o InBuilt Replay.

Analisar rastreamentos usando o comando DEA

Para iniciar uma nova análise de rastreamento, execute o seguinte comando:

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

Por exemplo:

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

Para exibir os relatórios de análise desses arquivos de rastreamento, você precisa usar a GUI para exibir gráficos e métricas organizadas. No entanto, o banco de dados de análise é gravado na instância do SQL Server especificada, portanto, você também pode consultar diretamente as tabelas de análise geradas.

Ao analisar rastreamentos usando o comando DEA, você pode usar as seguintes opções:

Opção Descrição
-a, --traceA Obrigatória. Caminho do arquivo para o arquivo de evento da instância A. Exemplo: C:\traces\Sql2008trace.trc. Se houver um lote de arquivos, selecione o primeiro arquivo e o DEA verificará automaticamente se há arquivos de sobreposição. Se os arquivos estiverem em BLOB, forneça o caminho da pasta onde você deseja que os arquivos de evento sejam armazenados localmente. Exemplo: C:\traces\
-b, --traceB Obrigatória. Caminho do arquivo para o arquivo de evento da instância B. Exemplo: C:\traces\Sql2014trace.trc. Se houver um lote de arquivos, selecione o primeiro arquivo e o DEA verificará automaticamente se há arquivos de sobreposição. Se os arquivos estiverem em BLOB, forneça o caminho da pasta onde você deseja que os arquivos de evento sejam armazenados localmente. Exemplo: C:\traces\
-r, --ReportName Obrigatória. Nome para análise atual. O relatório de análise gerado é identificado por esse nome.
-t, --type Padrão: 0. Tipo do SQL Server (0 = SqlServer, 1 = AzureSQLDB, 2 = Instância Gerenciada de SQL do Azure).
-h, --host Obrigatória. Nome do host ou nome da instância do SQL Server.
-e, --encrypt Padrão: Verdadeiro. Criptografar conexões à instância do SQL Server.
--trust Padrão: false. Confiar no certificado do servidor ao se conectar à instância do SQL Server.
-m, --authmode Padrão: 0. Modo de autenticação (0 = Windows, 1 = Sql Authentication).
-u, --username Nome de usuário para conexão com o SQL Server.
--p A senha usada para se conectar ao SQL Server.
--ab Padrão: false. O local de armazenamento do rastreamento A está no BLOB. Se usado, também deve especificar --abu (Trace A Blob Url)
--bb Padrão: false. O local de armazenamento do rastreamento B está no BLOB. Se usado, também deve especificar --bbu (Trace B Blob Url)
--abu URL de BLOB para a instância A com chave SAS.
--bbu URL de BLOB para a instância B com chave SAS.

Confira também