SQL Server Profiler
Aplica-se a: SQL Server Instâ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
- Rastreamento do SQL e SQL Server Profiler estão preteridos. O namespace Microsoft.SqlServer.Management.Trace que contém os objetos Trace e Replay 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 no SSMS XEvent Profiler.
Observação
Quando você tenta se conectar a um banco de dados SQL do Azure por meio do SQL Server Profiler, ele gera incorretamente a seguinte mensagem de erro enganosa:
- Para executar um rastreamento no SQL Server, você precisa ser membro da função de servidor fixa sysadmin ou ter a permissão ALTER TRACE.
A mensagem deveria explicar que o Banco de Dados SQL do Azure não tem suporte do SQL Server Profiler.
Onde está o Profiler?
Você pode iniciar o Profiler no SQL Server Management Studio ou com o Azure Data Studio usando a extensão do SQL Server Profiler.
Capturar e reproduzir dados de rastreamento
A tabela a seguir mostra os recursos que devem ser usados no SQL Server para capturar e reproduzir seus dados de rastreamento.
Recurso\carga de trabalho de destino | Mecanismo relacional | Analysis Services |
---|---|---|
Captura de rastreamento | Interface gráfica do usuárioEventos Estendidos no SQL Server Management Studio | SQL Server Profiler |
Reprodução de rastreamento | Distributed Replay | SQL Server Profiler |
Usar o SQL Server Profiler
O Microsoft SQL Server Profiler é uma interface gráfica do usuário que o Rastreamento do SQL usa 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, é possível monitorar um ambiente de produção para observar quais procedimentos armazenados afetam o desempenho devido à lentidão na execução. 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. Em seguida, o rastreamento salvo pode replicar o problema em um servidor de teste onde 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 Database Engine Tuning Advisor.
Correlacionar contadores de desempenho para diagnosticar problemas.
O SQL Server Profiler também oferece suporte à execução de 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 compreender os termos que descrevem o modo de funcionamento da ferramenta.
Observação
Entendendo como o Rastreamento do SQL ajuda a trabalhar com o SQL Server Profiler. Para obter mais informações, consulte SQL Trace.
Evento
Um evento é uma ação gerada dentro de 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
eDELETE
. - 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 informar. Veja os seguintes exemplos de classes de evento:
- SQL:BatchCompleted
- Audit Login
- Audit Logout
- Lock: Acquired
- Lock: Released
EventCategory
Uma categoria de evento define o modo pelo qual os eventos são agrupados no SQL Server Profiler. Por exemplo, todas as classes de eventos de bloqueio são agrupadas dentro da categoria de evento Locks. Categorias de evento, contudo, só existem dentro do SQL Server Profiler. Este termo não reflete o modo como os eventos do Mecanismo são agrupados.
DataColumn
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 pode ser coletado, 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 da página ou linha bloqueada, mas a coluna de dados Integer Data não contém nenhum valor, pois 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 contém as classes de evento que se quer monitorar com o SQL Server Profiler. Por exemplo, você pode criar um modelo que especifique eventos, colunas de dados e filtros. Um modelo não é executado, mas salvo como um arquivo de extensão .tdf. Uma vez salvo, o modelo controla os dados que são capturados quando um rastreamento que o tem por base é ativado.
Trace
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. Para fazer isso, selecione a classe de evento Exception e as colunas de dados Error, State e Severity. É preciso coletar os dados dessas três colunas para que os dados produzidos pelo rastreamento façam sentido. Em seguida, você pode executar um rastreamento configurado dessa forma e coletar dados sobre todo evento Exception no servidor. O rastreamento pode ser salvo ou utilizado para análise imediata. Os rastreamentos podem ser reproduzidos posteriormente, embora certos eventos, como Exception, nunca sejam reproduzidos. Você também pode salvar o rastreamento como um modelo, para criar rastreamentos semelhantes.
O SQL Server dispõe de duas formas de rastrear uma instância de SQL Server: rastreando com SQL Server Profiler ou usando os 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 Windows no rastreamento a usuários específicos reduz os dados de saída.
Sem um filtro definido, a saída do rastreamento retorna todos os eventos das classes de eventos 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 reproduzir rastreamentos. | Modelos e permissões 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 do Arquivo para um arquivo de rastreamento (SQL Server Profiler). | Definir um tamanho do arquivo máximo para um arquivo de rastreamento (SQL e outros). |
Descreve como definir um tamanho máximo para uma tabela de rastreamento. | Definir um tamanho máximo para uma tabela de rastreamento (SQL Server Profiler) |
Descreve como iniciar um rastreamento. | Iniciar um rastreamento |
Descreve como iniciar automaticamente um rastreamento após a conexão com um servidor. | Iniciar um rastreamento automaticamente após a conexão com 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 processo do servidor de filtro (SPIDs) em um rastreamento. | Filtrar SPIDs (IDs de processo do servidor de filtro) em um rastreamento (SQL e outros) |
Descreve como pausar um rastreamento. | Pausar um rastreamento (SQL Server Profiler) |
Descreve como interromper um rastreamento. | Interromper um rastreamento (SQL Server Profiler) |
Descreve como executar um rastreamento depois que ele tiver sido pausado ou interrompido. | Executar um rastreamento que foi 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. | Repetir uma tabela de rastreamento (SQL Server Profiler) |
Descreve como reproduzir um arquivo de rastreamento. | Repetir um arquivo de rastreamento (SQL Server Profiler) |
Descreve como reproduzir um único evento de cada vez. | Repetir um único evento de cada vez (SQL Server Profiler) |
Descreve como reproduzir até um ponto de interrupção. | Repetir até um ponto de interrupção (SQL Server Profiler) |
Descreve como reproduzir até um cursor. | Repetir até um cursor (SQL Server Profiler) |
Descreve como reproduzir um script Transact-SQL. | Repetir 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 um modelo de rastreamento (SQL Server Profiler) |
Descreve como definir opções de rastreamento globais. | Definir opções de rastreamento globais (SQL Server Profiler) |
Descreve como localizar um valor ou uma coluna de dados durante um rastreamento. | Localizar um valor ou coluna de dados durante um 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 a partir de um arquivo 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 os dados do log de desempenho do Windows (SQL Server Profiler) |
Descreve como organizar colunas exibidas em um rastreamento. | Organizar colunas exibidas em um rastreamento (SQL Server Profiler) |
Descreve como iniciar o SQL Server Profiler. | Iniciar 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 os 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 resultados do Plano de Execução 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 contextual 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 (Transact-SQL) |
Ferramenta Eventos estendidos e SQL Server Profiler
A ferramenta Eventos estendidos e o SQL Server Profiler se destinam a monitorar e solucionar problemas de desempenho do SQL Server. O SQL Server Profiler foi preterido e só deve ser usado com o Analysis Services. A ferramenta Eventos estendidos substitui o 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 indicadas aqui para ajudar na migração do SQL Server Profiler para a ferramenta Eventos estendidos.
Ferramentas Eventos estendidos
A ferramenta Eventos estendidos é um sistema de manipulação de eventos leve, altamente escalonável e flexível integrado ao SQL Server.
As sessões da ferramenta Eventos estendidos normalmente consomem menos recursos do que o Rastreamento do SQL e o SQL Server Profiler, tornando-as mais adequadas para ambientes de produção. A ferramenta Eventos estendidos permite à captura de eventos que estão disponíveis em versões modernas do SQL.
Por outro lado, os eventos disponíveis no Rastreamento do SQL/SQL Server Profiler são limitados aos recursos disponíveis no SQL Server 2008R2 e versões anteriores. A ferramenta Eventos estendidos fornece recursos de filtragem superiores, uma carga padrão menor e recursos não oferecidos no Profiler, como destinos na memória e agregados e suporte a vários destinos.
Para obter mais informações sobre a ferramenta Eventos estendidos, consulte Eventos estendidos.
Ferramenta SQL Server Profiler
O SQL Server Profiler é uma interface gráfica do usuário que usa o Rastreamento do SQL para capturar a atividade de uma instância do SQL Server ou do Analysis Services.
O SQL Server Profiler pode consumir muitos recursos se for configurado incorretamente, o que afeta o desempenho do servidor, especialmente se usado em servidores de produção. Ele conta com modelos integrados para permitir o 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 solucionar problemas e monitorar instâncias do SQL Server não disponíveis em outros lugares. Devido às suas vantagens sobre o Profiler, a ferramenta Eventos estendidos é recomendada para novos trabalhos de rastreamento e monitoramento.