Compartilhar via


Utilitários de RML (Replay Markup Language) para SQL Server

Este artigo discute um grupo de ferramentas usadas por profissionais de suporte para solucionar problemas do Microsoft SQL Server.

Versão original do produto: SQL Server
Número original do KB: 944837

O que são utilitários RML?

Os Utilitários RML são um conjunto de ferramentas de diagnóstico para solucionar problemas e ajudar a problemas de desempenho no SQL Server. Você pode pensar neles como ferramentas semelhantes às ferramentas que ajudam os técnicos médicos a processar os resultados de raios-X, ressonância magnética e tomografia computadorizada. Os utilitários RML são usados para processar e visualizar os dados de diagnóstico de desempenho coletados pelos usuários. Essas ferramentas são comumente usadas por engenheiros de suporte do SQL Server para processar rastreamentos de diagnóstico durante a solução de um problema de desempenho. Além disso, os Utilitários RML são frequentemente usados por desenvolvedores e administradores de banco de dados para analisar e melhorar sua carga de trabalho de consulta do SQL Server em seus ambientes de teste e produção. Existem três utilitários na suíte: ReadTrace, Reporter e Ostress.

  • O ReadTrace usa rastreamentos de Eventos Estendidos ou rastreamentos de Rastreamento do SQL que um usuário cria para diagnosticar um problema do SQL Server ou analisar o desempenho da carga de trabalho. O ReadTrace importa os rastreamentos para tabelas em um banco de dados SQL Server especificado pelo usuário. Pense no ReadTrace como uma ferramenta de transformação: ele pega binários .XEL ou .TRC arquivos e os importa para tabelas para que possam ser analisados mais facilmente por meio de consultas SQL. O ReadTrace também pode gerar linguagem de marcação de repetição (. RML) que podem ser usados pelo Ostress para reprodução de carga de trabalho.
  • Reporter é uma ferramenta de relatório e visualização que se conecta ao banco de dados do usuário que o ReadTrace cria. O Reporter executa consultas SQL no banco de dados e mostra resumos de relatório SSRS offline dos rastreamentos originais de Eventos Estendidos ou Profiler. Por exemplo, um relatório pode mostrar quais consultas foram executadas por mais tempo em uma determinada carga de trabalho capturada, quais usaram mais CPU e quais executaram mais leituras.
  • Ostress é uma ferramenta de simulação de teste de estresse. Ostress.exe usa rastreamentos de diagnóstico de Evento Estendido ou SQL Profiler como entrada. Ele também pode aceitar consultas fornecidas pelo usuário como entradas. Em seguida, o Ostress reproduz esses rastreamentos ou consultas em uma instância do SQL Server escolhida pelo usuário. O objetivo é simular o estresse. Por exemplo, se você fornecer ao OStress uma consulta como select * from table1, poderá instruí-lo a executar a consulta 100 vezes em 50 conexões simultaneamente. Além de consultas individuais, o Ostress pode usar arquivos RML especiais que o ReadTrace gera para executar a repetição.
  • O OStress Replay Control Agent (ORCA) ajuda o Ostress a simular um teste de estresse reproduzindo uma carga de trabalho de arquivos RML. Você não interage diretamente com o ORCA, mas usa o Ostress.

Para obter uma descrição completa de cada ferramenta e exemplo de uso, consulte o arquivo de Ajuda RML incluído nos Utilitários RML para SQL Server.

Como os utilitários RML são úteis?

Você pode usar os Utilitários RML para SQL Server para executar as seguintes tarefas:

  • Determine qual aplicativo, banco de dados, logon ou consulta do SQL Server está usando o máximo de recursos.
  • Determine se o plano de execução de um lote é alterado quando você captura o rastreamento do lote. Além disso, você pode usar os Utilitários RML para SQL Server para determinar como o SQL Server executa esses planos.
  • Determine quais consultas estão sendo executadas lentamente.

Depois de capturar um rastreamento para uma instância do SQL Server, você pode usar os Utilitários RML para SQL Server para reproduzir o arquivo de rastreamento em outra instância do SQL Server. Se você também capturar o rastreamento durante a repetição, poderá usar os Utilitários RML para SQL Server para comparar o novo arquivo de rastreamento com o arquivo de rastreamento original. Você pode usar essa técnica para testar como o SQL Server se comporta depois de aplicar as alterações. Por exemplo, você pode usar essa técnica para testar como o SQL Server se comporta depois de executar as seguintes tarefas:

  • Instale um service pack do SQL Server.
  • Instale uma atualização cumulativa do SQL Server.
  • Atualize um procedimento armazenado ou uma função.
  • Atualize ou crie um índice.

Benefícios dos utilitários RML para SQL Server

Os Utilitários RML para SQL Server são úteis se você deseja simular o teste de aplicativos quando é impraticável ou impossível testar usando o aplicativo real. Em um ambiente de teste, pode ser difícil gerar a mesma carga de usuário que existe no ambiente de produção. Você pode usar os Utilitários RML para SQL Server para reproduzir uma carga de trabalho de produção em um ambiente de teste e avaliar o efeito de desempenho de quaisquer alterações. Por exemplo, você pode testar uma atualização para o SQL Server 2008 ou o aplicativo de um service pack do SQL Server. Além disso, você pode usar os Utilitários RML para SQL Server para analisar e comparar várias cargas de trabalho de repetição. Executar esse tipo de análise de regressão manualmente é difícil.

O arquivo de Ajuda contém um tópico de Início Rápido. Este tópico inclui um breve exercício que o familiariza com todas as ferramentas de RML. Para abrir o arquivo de Ajuda, selecione Iniciar>todos os programas>Utilitários RML para Ajuda>RML do SQL Server.>

Local de download e histórico de versões

Você pode examinar o histórico de versões do RML Utilities nesta tabela e fazer download das ferramentas aqui.

Número da Versão Descrição
09.04.0103 Indica a versão atual da Web disponível no Centro de Download da Microsoft. Ele dá suporte a todas as versões lançadas do SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 e SQL Server 2008).
09.04.0102 Indica a versão anterior da Web que está disponível no Centro de Download da Microsoft. Ele dá suporte a todas as versões lançadas do SQL Server (SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 e SQL Server 2008).
9.04.0100 Indica uma versão anterior da Web que está disponível no Centro de Download da Microsoft. Ele dá suporte a todas as versões lançadas do SQL Server (SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 e SQL Server 2000).
9.04.0098 Indica um pacote de versão da Web anterior incluído na ferramenta Assistente de Experimentação de Banco de Dados. Ele dá suporte a todas as versões lançadas do SQL Server.
9.04.0097 Uma versão anterior disponível no site do SQL Nexus que dá suporte a todas as versões lançadas do SQL Server.
9.04.0051 Uma versão anterior da Web disponível no Centro de Download da Microsoft que dá suporte ao SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 e SQL Server 2000.
9.04.0004 Uma versão anterior da Web que dá suporte ao SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 e SQL Server 2000.
9.01.0109 Uma versão anterior da Web que oferece suporte ao SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 e SQL Server 2000.
9.00.0023 Uma versão anterior da Web que oferece suporte ao SQL Server 2005 e ao SQL Server 2000.
8.10.0010 A versão inicial da Web que oferece suporte ao SQL Server 2000 e ao SQL Server 7.0.

A versão atual dos Utilitários RML para SQL Server substitui todas as versões anteriores. Você deve desinstalar qualquer versão anterior do RML Utilities for SQL Server antes de instalar a versão atual. A versão atual do conjunto de ferramentas contém atualizações de software importantes, recursos aprimorados (arquivos .trc e .xel de processo) e relatórios e melhorias de desempenho e escalabilidade.

Obter os utilitários RML para SQL Server

  • Os Utilitários RML para SQL Server estão disponíveis para download no Centro de Download da Microsoft.

  • Depois de instalar o Assistente de Experimentação de Banco de Dados, você encontrará as ferramentas RML (ReadTrace e OStress) na C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Dependencies\X64\ pasta.

Observação

A Microsoft fornece utilitários RML para SQL Server no estado em que se encontram. O CSS (Serviços de Atendimento ao Cliente) da Microsoft não fornece suporte para o pacote. Se você tiver uma sugestão ou quiser relatar um bug, poderá usar o endereço de e-mail no artigo "Problemas e assistência" no arquivo de Ajuda (RML Help.docx). O arquivo de Ajuda está incluído nos Utilitários RML para SQL Server.

Dependências para utilitários RML para SQL Server

Importante

Os aplicativos que são fornecidos como parte do conjunto de ferramentas RML exigem que vários outros controles sejam disponibilizados.

Dependências do Reporter

Você precisa verificar se os controles do Visualizador de Relatórios estão disponíveis na mesma pasta que o Reporter.exe ou no GAC (Cache de Assembly Global). As DLLs que Reporter.exe requer são:

  • Microsoft.ReportViewer.Common.dll
  • Microsoft.ReportViewer.DataVisualization.dll
  • Microsoft.ReportViewer.ProcessingObjectModel.dll
  • Microsoft.ReportViewer.WinForms.dll
  1. As versões mais recentes do RML Utilities incluem essas DLLs na pasta do aplicativo.

  2. Se não estiver disponível, você poderá baixar essas DLLs usando o seguinte script do PowerShell:

    Register-PackageSource -Name MyNuGet -Location https://www.nuget.org/api/v2 -ProviderName NuGet
    Get-PackageSource
    
    Find-Package Microsoft.ReportViewer.Common -AllVersions
    Install-Package Microsoft.ReportViewer.Common -RequiredVersion 10.0.40219.1
    
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.Common.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.DataVisualization.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.ProcessingObjectModel.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    
    Find-Package Microsoft.ReportViewer.WinForms -AllVersions
    Install-Package Microsoft.ReportViewer.WinForms -RequiredVersion 10.0.40219.1
    
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.WinForms.10.0.40219.1\lib\Microsoft.ReportViewer.WinForms.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    
  3. Você deve baixar e instalar uma correção do ReporterViewer para permitir que os links nos relatórios do ReadTrace funcionem corretamente. Para baixar a correção do ReporterViewer, acesse o Visualizador de Relatórios do Microsoft Visual Studio 2010 Service Pack 1 (KB2549864).

Dependências para Expander (opcional)

Na maioria dos casos, o Expander, que o ReadTrace usa para processar arquivos CAB/ZIP/RAR, não é utilizado. No entanto, se você precisar usar essa funcionalidade para um tipo de arquivo compactado específico, verifique se os controles de compactação e descompactação estão disponíveis na mesma pasta que Expander.exe ou no GAC. As DLLs que Expander.exe requer são as seguintes:

  • BRICOLSOFTZipx64.dll
  • UnRar64.dll
  • XceedZipX64.dll

Você pode obter essas DLLs nos respectivos pacotes de software dos fornecedores:

Dependências para ReadTrace e Ostress

O ReadTrace e o Ostress usam os drivers ODBC e OLEDB fornecidos como parte do SQL Server Native Client. A partir da versão 09.04.0103, o pacote de utilitários RML não depende apenas do SNAC (cliente nativo do SQL Server). Ele pode usar os drivers ODBC ou OLEDB da Microsoft no sistema em que está instalado.

Se você planeja analisar arquivos de Eventos Estendidos (*.xel), verifique se o Visual C++ 2010 Redistributable está instalado no sistema.

Problemas conhecidos e correções

Problema Solução
O ReadTrace encontra um erro "Não é possível conectar-se ao servidor especificado. HRESULT inicial: 0x80040154" em computadores em que o SQL Server não está instalado ou apenas o SQL Server 2022 está instalado Corrigido na versão 09.04.0103. Como solução alternativa, você pode instalar o SQL Server Native Client ou outra versão do SQL Server. HRESULT 0x80040154 REGDB_E_CLASSNOTREG Class not registered é um arquivo de cabeçalho winerror.h que significa que um componente COM não está registrado porque provavelmente não está instalado. Isso acontece porque o SQL Server 2022 não envia o SQL Server Native Client.
O ReadTrace encontra "ERRO: Verificação de tempo de execução do evento: Coluna ausente detectada [cached_text] no evento [sp_cache_remove] na sequência de eventos 209494" Corrigido na versão 09.04.0102. Como solução alternativa, você pode adicionar sinalizadores de rastreamento (-T28 -T29) à linha de comando ReadTrace.
O Reporter encontra "Não foi possível carregar o arquivo ou assembly 'Reporter, Version=9.4.10000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou uma de suas dependências. Falha na validação do nome forte. (Exceção de HRESULT: 0x8013141A)" Corrigido na versão 09.04.0102. Como solução alternativa, você pode criar a seguinte chave do Registro para substituir a verificação de nome forte: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\Reporter,31BF3856AD364E35.
O ReadTrace falha com o erro "Não é possível conectar-se ao servidor especificado. HRESULT inicial: 0x80040154". Ostress falha com o erro "Falha na tentativa de estabelecer conexão. Erro de segurança SSL.". Consulte as instruções para instalar o SQL Server Native Client.
Você encontra a exceção do ReadTrace "Exceção sem tratamento: System.IO.FileNotFoundException: não foi possível carregar o arquivo ou assembly 'Microsoft.SqlServer.XEvent.Linq.dll' ou uma de suas dependências. O módulo especificado não pôde ser encontrado". Instalar o Visual C++ 2010 Redistribuível

Exemplos

Os exemplos a seguir ilustram como usar algumas das ferramentas de RML.

Usando ReadTrace.exe para importar dados de Evento Estendido (Xevent) em um banco de dados

Use ReadTrace.exe para importar uma série de arquivos Xevent que são coletados usando ferramentas como PSSDIAG/SQLDiag.exe ou SQL LogScout. Use o -I parâmetro para apontar para o primeiro arquivo .xel que foi coletado a tempo, se vários arquivos estiverem presentes. Para todas as opções de linha de comando, use ReadTrace.exe /?:

ReadTrace.exe -Iserver_instance_20220211T1319480819_xevent_LogScout_target_0_132890707717540000.xel -oc:\temp\output -f -dPerfAnalysisDb -S.

Usando Ostress.exe para testar uma consulta

Use OStress para enviar uma consulta em um servidor que está executando SQL Server executando 30 conexões simultâneas e executando a consulta 10 vezes em cada conexão. Para todas as opções de linha de comando, use Ostress.exe /?:

ostress.exe -E -dmaster -Q"select name from sys.databases" -n30 -r10

Usando ReadTrace e Ostress para gerar e reproduzir arquivos RML

Para gerar arquivos . RML , use um comando como o seguinte:

ReadTrace -I"D:\RMLReplayTest\ReplayTrace.trc" -o"D:\RMLReplayTest\RML" -S. -dReadTraceTestDb   

Para obter mais informações sobre quais eventos precisam ser capturados para criar um rastreamento de repetição, consulte o Help.docx RML.

Para reproduzir um arquivo RML usando o Ostress, use um comando como o seguinte:

ostress.exe -S.\sql2022 -E -dAdventureWorks2022 -i"D:\RMLReplayTest\RML\SQL00069.rml" -o"D:\RMLReplayTest\RML\output"

Você pode reproduzir todos os arquivos RML usando *.RML. Por exemplo: -i"D:\RMLReplayTest\RML\*.rml".

Aviso de isenção de responsabilidade para contatos de terceiros

A Microsoft fornece informações de contato de terceiros para ajudá-lo a encontrar informações adicionais sobre esse tópico. Essas informações de contato podem ser alteradas sem aviso prévio. A Microsoft não garante a precisão das informações de contato de terceiros.

Recursos adicionais

Ferramentas de solução de problemas e diagnóstico para cenários locais e híbridos do SQL Server