Compartilhar via


SQL Server Profiler

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

O SQL Server Profiler é uma interface para criar e gerenciar rastreamentos, além de analisar e reproduzir resultados de rastreamento. Os eventos são salvos em um arquivo de rastreamento que posteriormente pode ser analisado ou utilizado para reproduzir uma série específica de etapas ao diagnosticar um problema.

Importante

  • O Rastreamento do SQL e o SQL Server Profiler são preteridos. O namespace Microsoft.SqlServer.Management.Trace que contém os objetos Rastreamento e Reprodução do Microsoft SQL Server também foi preterido. No entanto, há suporte para cargas de trabalho do Analysis Services.
  • Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.
  • Em vez disso, use Eventos Estendidos. Para obter mais informações sobre eventos estendidos, confira Início rápido: eventos estendidos no SQL Server e SSMS XEvent Profiler.

Quando você tenta se conectar a um Banco de Dados SQL do Azure do SQL Server Profiler, ele gera incorretamente uma mensagem de erro enganosa da seguinte maneira:

To run a trace against SQL Server, you must be a sysadmin fixed server role member or have the ALTER TRACE permission.

A mensagem deveria ter explicado que o Banco de Dados SQL do Azure não é compatível com a criação de perfil do SQL Server.

Onde está o Profiler?

Você pode iniciar o Criador de Perfil no Run SQL Server Profiler ou com a extensão do SQL Server Profiler (versão prévia).

Capturar e reproduzir dados de rastreamento

A tabela a seguir mostra os recursos que recomendamos usar no SQL Server para capturar e reproduzir seus dados de rastreamento.

Recurso\carga de trabalho de destino Mecanismo relacional Analysis Services
Captura de rastreamento Visão geral do Extended Events na interface gráfica do usuário no SQL Server Management Studio SQL Server Profiler
Reprodução de rastreamento Visão geral do SQL Server Distributed Replay SQL Server Profiler

Usar o SQL Server Profiler

O Microsoft SQL Server Profiler é uma interface gráfica do usuário para o Rastreamento de SQL para monitorar uma instância do Mecanismo de Banco de Dados ou do Analysis Services. Você pode capturar e salvar dados sobre cada evento em um arquivo ou tabela para análise posterior. Por exemplo, você pode monitorar um ambiente de produção para ver quais procedimentos armazenados afetam o desempenho executando muito lentamente. O SQL Server Profiler é usado para atividades como:

  • Percorrer consultas de problemas para localizar a causa do problema.

  • Localizar e diagnosticar consultas de execução lenta.

  • Capturar a série de instruções Transact-SQL que resultam em um problema. O rastreamento salvo pode replicar o problema em um servidor de teste em que o problema pode ser diagnosticado.

  • Monitorar o desempenho do SQL Server para ajustar cargas de trabalho. Para obter mais informações sobre como ajustar o design físico do banco de dados para cargas de trabalho do banco de dados, consulte Orientador de Otimização do Mecanismo de Banco de Dados.

  • Correlacionar contadores de desempenho para diagnosticar problemas.

O SQL Server Profiler também dá suporte à auditoria das ações executadas em instâncias do SQL Server. As auditorias registram ações relacionadas à segurança para análise posterior por um administrador de segurança.

Conceitos do SQL Server Profiler

Para usar o SQL Server Profiler, você precisa entender os termos que descrevem a maneira como a ferramenta funciona.

Noções básicas sobre o Rastreamento de SQL ajuda ao trabalhar com o SQL Server Profiler. Para obter mais informações, consulte SQL Trace.

Evento

Um evento é uma ação gerada em uma instância do Mecanismo de Banco de Dados do SQL Server. São exemplos:

  • Conexões, falhas e desconexões de logon.
  • Instruções do Transact-SQL SELECT, INSERT, UPDATE e DELETE.
  • Status de lote de chamadas de procedimento remoto (RPC).
  • O início ou término de um procedimento armazenado.
  • O início ou término de instruções dentro de procedimentos armazenados.
  • O início ou término de um lote de SQL.
  • Um erro gravado no log de erros do SQL Server.
  • Um bloqueio adquirido ou liberado em um objeto de banco de dados.
  • Um cursor aberto.
  • Verificações de permissão de segurança.

O rastreamento exibe todos os dados gerados por um evento em uma única linha. Esta linha é cruzada por colunas de dados que descrevem o evento em detalhes.

EventClass

Uma classe de evento é um tipo de evento que pode ser rastreado. A classe de evento contém todos os dados que um evento pode relatar. Veja os seguintes exemplos de classes de evento:

  • SQL:BatchCompleted
  • Logon de Auditoria
  • Logoff de Auditoria
  • Bloqueio: Adquirido
  • Bloqueio: Liberado

Categoria de Evento

Uma categoria de evento define a maneira como os eventos são agrupados no SQL Server Profiler. Por exemplo, todas as classes de evento de bloqueio são agrupadas na categoria de evento Locks. No entanto, as categorias de evento só existem no SQL Server Profiler. Este termo não reflete o modo como os eventos do Mecanismo são agrupados.

Coluna de Dados

Uma coluna de dados é um atributo de uma classe de evento capturada no rastreamento. Como a classe de evento determina o tipo de dados que podem ser coletados, nem todas as colunas de dados se aplicam a todas as classes de evento. Por exemplo, em um rastreamento que captura a classe de evento Lock: Acquired, a coluna de dados BinaryData contém o valor da ID ou linha da página bloqueada, mas a coluna de dados de Dados Inteiros não contém nenhum valor porque ela não se aplica à classe de evento que está sendo capturada.

Modelo

Um modelo define a configuração padrão para um rastreamento. Especificamente, ele inclui as classes de evento que você deseja monitorar com o SQL Server Profiler. Por exemplo, você pode criar um modelo especificando os eventos, colunas de dados e filtros. Um modelo não é executado, mas salvo como um arquivo com uma extensão .tdf. Depois de salvo, o modelo controla os dados de rastreamento capturados quando um rastreamento baseado no modelo é iniciado.

Traço

Um rastreamento captura dados segundo classes de evento, colunas de dados e filtros selecionados. Por exemplo, você pode criar um rastreamento para monitorar erros de exceção. Selecione a classe de evento Exceção e as colunas de dados Erro, Estado e Gravidade para fazer isso. Os dados dessas três colunas devem ser coletados para que os resultados do rastreamento forneçam dados significativos. Em seguida, você pode executar um rastreamento, configurado dessa maneira e coletar dados em quaisquer eventos de Exceção no servidor. Os dados de rastreamento podem ser salvos ou usados imediatamente para análise. Os rastreamentos podem ser reproduzidos posteriormente, embora determinados eventos, como eventos de Exceção, nunca sejam reproduzidos. Você também pode salvar o rastreamento como um modelo para criar rastreamentos semelhantes.

O SQL Server fornece duas maneiras de rastrear uma instância do SQL Server: você pode rastrear com o SQL Server Profiler ou rastrear usando procedimentos armazenados do sistema.

Filtrar

Ao criar um rastreamento ou modelo, você pode definir critérios para filtrar os dados coletados pelo evento. Para impedir que os rastreamentos se tornem grandes demais, você pode filtrá-los de modo que apenas um subconjunto dos dados do evento sejam coletados. Por exemplo, limitar os nomes de usuário do Microsoft Windows no rastreamento a usuários específicos reduz os dados de saída.

Se um filtro não estiver definido, a saída de rastreamento retornará todos os eventos das classes de evento selecionadas.

Tarefas do SQL Server Profiler

Descrição da tarefa Artigo
Lista os modelos predefinidos que o SQL Server fornece para monitorar determinados eventos e as permissões necessárias para usar rastreamentos de reprodução. Permissões e modelos do SQL Server Profiler
Descreve como executar o SQL Server Profiler. Permissões necessárias para executar o SQL Server Profiler
Descreve como criar um rastreamento. Criar um rastreamento (SQL Server Profiler)
Descreve como especificar eventos e colunas de dados para um arquivo de rastreamento. Especificar eventos e colunas de dados para um arquivo de rastreamento (SQL Server Profiler)
Descreve como salvar resultados de rastreamento em um arquivo. Salvar resultados de rastreamento em um arquivo (SQL Server Profiler)
Descreve como salvar resultados de rastreamento em uma tabela. Salvar resultados de rastreamento em uma tabela (SQL Server Profiler)
Descreve como filtrar eventos em um rastreamento. Filtrar eventos em um rastreamento (SQL Server Profiler)
Descreve como exibir informações de filtro. Exibir informações de filtro (SQL Server Profiler)
Descreve como modificar um filtro. Modificar um filtro (SQL Server Profiler)
Descreve como definir um tamanho máximo para um arquivo de rastreamento (SQL Server Profiler). Defina um tamanho máximo de arquivo para um arquivo de rastreamento (SQL Server Profiler).
Descreve como definir um tamanho máximo para uma tabela de rastreamento. Definir um tamanho máximo de tabela para uma tabela de rastreamento (SQL Server Profiler)
Descreve como iniciar um rastreamento. Iniciar um rastreamento (SQL Server Profiler)
Descreve como iniciar automaticamente um rastreamento após a conexão com um servidor. Iniciar um rastreamento automaticamente depois de se conectar a um servidor (SQL Server Profiler)
Descreve como filtrar eventos com base na hora de início do evento. Filtrar eventos com base na hora de início do evento (SQL Server Profiler)
Descreve como filtrar eventos com base na hora de término do evento. Filtrar eventos com base na hora de término do evento (SQL Server Profiler)
Descreve como filtrar IDs de sessão em um rastreamento. Filtrar IDs de sessão em um rastreamento (SQL Server Profiler)
Descreve como pausar um rastreamento. Pausar um rastreamento (SQL Server Profiler)
Descreve como interromper um rastreamento. Parar um rastreamento (SQL Server Profiler)
Descreve como executar um rastreamento depois que ele tiver sido pausado ou interrompido. Executar um rastreamento depois que ele tiver sido pausado ou interrompido (SQL Server Profiler)
Descreve como limpar uma janela de rastreamento. Limpar uma janela de rastreamento (SQL Server Profiler)
Descreve como fechar uma janela de rastreamento. Fechar uma janela de rastreamento (SQL Server Profiler)
Descreve como definir padrões de definição de rastreamento. Definir padrões de definição de rastreamento (SQL Server Profiler)
Descreve como definir padrões de exibição de rastreamento. Definir padrões de exibição de rastreamento (SQL Server Profiler)
Descreve como abrir um arquivo de rastreamento. Abrir um arquivo de rastreamento (SQL Server Profiler)
Descreve como abrir uma tabela de rastreamento. Abrir uma tabela de rastreamento (SQL Server Profiler)
Descreve como reproduzir uma tabela de rastreamento. Reexecutar uma tabela de rastreamento (SQL Server Profiler)
Descreve como reproduzir um arquivo de rastreamento. Reproduzir um arquivo de rastreamento (SQL Server Profiler)
Descreve como reproduzir um único evento de cada vez. Reproduzir um único evento de cada vez (SQL Server Profiler)
Descreve como reproduzir até um ponto de interrupção. Reexecutar até um ponto de interrupção (SQL Server Profiler)
Descreve como reproduzir até um cursor. Reproduzir em um cursor (SQL Server Profiler)
Descreve como reproduzir um script Transact-SQL. Reexecutar um script Transact-SQL (SQL Server Profiler)
Descreve como criar um modelo de rastreamento. Criar um modelo de rastreamento (SQL Server Profiler)
Descreve como modificar um modelo de rastreamento. Modificar modelos de rastreamento
Descreve como definir opções de rastreamento globais. Definir opções de rastreamento global (SQL Server Profiler)
Descreve como localizar um valor ou uma coluna de dados durante um rastreamento. Localizar um valor ou coluna de dados durante o rastreamento (SQL Server Profiler)
Descreve como derivar um modelo a partir de um rastreamento em execução. Derivar um modelo de um rastreamento em execução (SQL Server Profiler)
Descreve como derivar um modelo a partir de um arquivo de rastreamento ou uma tabela de rastreamento. Derivar um modelo de um arquivo de rastreamento ou tabela de rastreamento (SQL Server Profiler)
Descreve como criar um script Transact-SQL para executar um rastreamento. Criar um script Transact-SQL para executar um rastreamento (SQL Server Profiler)
Descreve como exportar um modelo de rastreamento. Exportar um modelo de rastreamento (SQL Server Profiler)
Descreve como importar um modelo de rastreamento. Importar um modelo de rastreamento (SQL Server Profiler)
Descreve como extrair um script de um rastreamento. Extrair um script de um rastreamento (SQL Server Profiler)
Descreve como correlacionar um rastreamento com dados de log de desempenho do Windows. Correlacionar um rastreamento com dados de log de desempenho do Windows
Descreve como organizar colunas exibidas em um rastreamento. Organizar colunas exibidas em um rastreamento (SQL Server Profiler)
Descreve como iniciar o SQL Server Profiler. Executar o SQL Server Profiler
Descreve como salvar rastreamentos e rastrear modelos. Salvar rastreamentos e modelos de rastreamento
Descreve como modificar modelos de rastreamento. Modificar modelos de rastreamento
Descreve como correlacionar um rastreamento com dados de log de desempenho do Windows. Correlacionar um rastreamento com dados de log de desempenho do Windows
Descreve como exibir e analisar rastreamentos com o SQL Server Profiler. Exibir e analisar rastreamentos com o SQL Server Profiler
Descreve como analisar deadlocks com o SQL Server Profiler. Analisar deadlocks com o SQL Server Profiler
Descreve como analisar consultas com resultados de SHOWPLAN no SQL Server Profiler. Analisar consultas com os resultados do SHOWPLAN no SQL Server Profiler
Descreve como filtrar rastreamentos com o SQL Server Profiler. Filtrar rastreamentos com o SQL Server Profiler
Descreve como usar os recursos de reprodução do SQL Server Profiler. Reproduzir rastreamentos
Lista os artigos de ajuda contextuais para o SQL Server Profiler. Ajuda de F1 do SQL Server Profiler
Lista os procedimentos armazenados do sistema que são usados pelo SQL Server Profiler para monitorar o desempenho e a atividade. Procedimentos armazenados do SQL Server Profiler

Eventos Estendidos vs. SQL Server Profiler

A visão geral de Eventos Estendidos e o SQL Server Profiler são ferramentas para monitorar e solucionar problemas de desempenho do SQL Server. O SQL Server Profiler foi preterido e só deve ser usado com o Analysis Services. Eventos Estendidos é a substituição do SQL Server Profiler e fornece recursos avançados de solução de problemas não disponíveis em outros lugares. As principais diferenças são observadas aqui para ajudar na migração do SQL Server Profiler para Eventos Estendidos.

Ferramenta Eventos Estendidos

A visão geral de Eventos Estendidos é um sistema leve, altamente escalonável e flexível de manipulação de eventos integrado ao SQL Server.

As sessões de Eventos Estendidos normalmente consomem menos recursos do que o Rastreamento do SQL e o SQL Server Profiler, tornando-os mais adequados para ambientes de produção. Eventos Estendidos dão suporte à captura de eventos que estão disponíveis em versões modernas do SQL.

Por outro lado, os eventos disponíveis no SQL Trace/SQL Server Profiler estão limitados aos recursos disponíveis no SQL Server 2008R2 e anteriores. Os Eventos Estendidos fornecem recursos de filtragem superiores, uma carga padrão menor e recursos não oferecidos no Profiler, como destinos na memória e agregação e suporte a vários destinos.

Para obter mais informações sobre eventos estendidos, consulte a visão geral de Eventos Estendidos.

Ferramenta SQL Server Profiler

O SQL Server Profiler é uma interface gráfica do usuário que usa o Rastreamento de SQL para capturar a atividade de uma instância do SQL Server ou do Analysis Services.

O SQL Server Profiler pode ter uso intensivo de recursos se configurado incorretamente, afetando o desempenho do servidor, especialmente quando usado em servidores de produção. Ele tem modelos internos para dar suporte ao rastreamento rápido.

Em resumo, embora o SQL Server Profiler seja uma ferramenta mais antiga que pode ser familiar para muitos usuários, os Eventos Estendidos são uma alternativa moderna que oferece melhor desempenho, informações de eventos mais detalhadas e recursos para solução de problemas e monitoramento de instâncias do SQL Server não disponíveis em outros lugares. Devido a suas vantagens em relação ao Profiler, eventos estendidos são recomendados para novos trabalhos de rastreamento e monitoramento.