Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como capturar e analisar eventos do SQL Server


Ao trabalhar como administrador de banco de dados do SQL Server, você deve ter as habilidades para mergulhar profundamente no oceano do SQL Server Engine e descobrir o que está acontecendo internamente, para poder detectar, solucionar problemas e corrigir qualquer problema que possa enfrentar.
Você pode se beneficiar dos logs escritos pelo mecanismo do SQL Server localmente na forma de logs do SQL Server ou externamente na forma de logs de eventos, mas não pode considerá-los como a única fonte para sua solução de problemas e ajuste operações.

O SQL Server fornece vários recursos internos que podem ser usados ​​para coletar os diferentes tipos de eventos do SQL Server. Neste artigo, examinaremos esses recursos internos e consideraremos uma das ferramentas de terceiros gratuitas mais eficientes que podem ser usadas para coletar e analisar eventos do SQL Server.

SQL Profiler


O SQL Server Profiler é amplamente usado por administradores e desenvolvedores de banco de dados do SQL Server para coletar tipos variantes de eventos sobre as consultas executadas na instância do SQL Server conectada e, em seguida, usar essas informações para aprimorar o desempenho da consulta.

O SQL Profiler oferece a capacidade de capturar uma grande variedade de eventos, especificar as propriedades de eventos em que você está interessado e filtrar os dados capturados com base nos valores de propriedade especificados anteriormente. Você pode ir até a profundidade de qual usuário está executando que tipo de ação em qual tabela de banco de dados, de qual máquina e em que momento exatamente. Além disso, o SQL Profiler exibe o número de recursos consumidos e mostra se a ação foi concluída ou falhou com um erro.

A coleta de eventos por meio do SQL Profiler é realizada usando vários modelos existentes ou criando seu próprio modelo personalizado usando os eventos existentes. Primeiro, você precisa se conectar à instância do SQL Server da qual planeja capturar os eventos, fornecendo o nome da instância do SQL Server, o método de autenticação e as credenciais necessárias para se conectar a essa instância do SQL Server, conforme mostrado abaixo:



Após conectar-se à instância do SQL Server, será solicitado que você especifique o modelo para os eventos a serem coletados, com base na finalidade do processo de criação de perfil, conforme mostrado abaixo:



Você pode ver na imagem anterior que o SQL Profiler oferece uma opção para salvar o resultado do rastreamento em um arquivo ou em uma tabela de banco de dados existente. Se nenhum dos modelos fornecidos atender aos seus requisitos, você poderá mover facilmente para a Seleção de eventos tab e marque para mostrar todos os eventos e colunas e, em seguida, filtre os eventos capturados com as propriedades que lhe interessam. Por exemplo, você pode filtrar para capturar eventos provenientes de um banco de dados específico, um usuário do banco de dados, uma tabela de banco de dados, máquina host e assim por diante em, como segue:



Depois de selecionar os eventos de seu interesse, basta clicar no botão Executar botão e começar a receber eventos do banco de dados selecionado, conforme mostrado abaixo:



Leve em consideração que, se você não definir um filtro muito preciso para coletar apenas os eventos de seu interesse, o SQL Profiler coletará um grande número de eventos que serão difíceis de ler e analisar. Além disso, não recomendado executar a ferramenta SQL Profiler no ambiente de produção, pois ela “consome” os recursos do servidor e acaba com seu desempenho. Se você precisar muito usá-lo, tente restringir o escopo dos eventos a serem capturados usando filtros precisos.

Eventos estendidos


Para superar o problema de degradação de desempenho causado pelo uso da ferramenta obsoleta SQL Profiler para capturar os diferentes tipos de eventos SQL, um recurso de monitoramento de desempenho leve, altamente escalável e configurável foi introduzido no SQL Server 2008, que pode ser usado na coleta de informações úteis da ampla gama de ações disponíveis, com o menor consumo possível de recursos SQL, o que auxilia na solução de problemas e no ajuste do desempenho das consultas do SQL Server. Esse recurso de captura de eventos é chamado de SQL Server Eventos estendidos .

O recurso Extended Events pode ser acessado por meio do SQL Server Management Studio, em Extended Events opção em Gerenciamento nó. Para criar uma nova sessão de eventos estendidos, clique com o botão direito do mouse em Sessões opção, em Eventos estendidos nó e selecione Nova sessão como abaixo:



Da Nova Sessão janela, você tem a opção de selecionar entre vários modelos disponíveis, com mais modelos predefinidos do que os modelos do SQL Profiler, ou simplesmente usar o modelo em branco e especificar explicitamente os eventos de seu interesse, conforme mostrado abaixo:



Dos Eventos guia, você pode filtrar os eventos de seu interesse com base na categoria de eventos e, em seguida, escolher quais propriedades para cada evento você precisa recuperar. Além disso, você pode criar um filtro personalizado para restringir o escopo dos eventos capturados, conforme mostrado abaixo:



O Armazenamento página oferece diferentes opções para salvar o resultado da sessão de eventos estendidos. Neste exemplo, manteremos o resultado do rastreamento em um arquivo Extended Events com as configurações definidas abaixo:



Depois de personalizar a sessão de eventos estendidos para atender aos seus requisitos de monitoramento, clique em OK botão para criar a sessão. Depois que a sessão for criada, ela não começará a capturar automaticamente os eventos, a menos que você configure isso durante o processo de criação da sessão. Para permitir que a sessão comece a capturar eventos, clique com o botão direito do mouse na sessão criada e selecione Iniciar sessão opção, como mostrado abaixo:



Para visualizar a sessão capturada você tem a opção de abrir o arquivo físico que está configurado anteriormente para armazenar os eventos, ou simplesmente clicar com o botão direito do mouse na sessão criada e selecionar a opção Assistir a dados ao vivo opção, como mostrado abaixo:



Uma nova janela será aberta, mostrando os eventos coletados com os valores das propriedades de cada evento, conforme abaixo:



Embora você possa criar eventos Extended facilmente com apenas alguns cliques, você ainda enfrenta algumas dificuldades ao tentar escolher o evento correto a ser monitorado, devido à complexidade na convenção de nomenclatura dos eventos, que dificulta o entendimento do propósito por trás de cada evento. Além disso, a GUI na qual as informações da sessão são exibidas ainda não é amigável, o que complica a análise dos eventos e suas propriedades. A partir deste ponto, a necessidade de uma ferramenta de terceiros mais amigável está aumentando, o que discutiremos na próxima seção deste artigo.

dbForge Event Profiler


O dbForge Event Profiler para SQL Server é um GRATUITO ferramenta que fornece a capacidade de capturar e analisar os eventos do SQL Server e armazenar os dados dos eventos em um arquivo de rastreamento físico para exame posterior.

O dbForge Event Profiler para SQL Server supera o problema de degradação de desempenho do SQL Profiler executando com o desempenho mais alto possível e a carga mínima do servidor com suporte total para o recurso Extended Events.

O que torna o dbForge Event Profiler for SQL Server atraente ferramenta de criação de perfil de eventos sobre o recurso Extended Events é o realce de sintaxe de consulta recurso que não está disponível no recurso SQL Profiler ou Extended Events. Além disso, oferece a capacidade de realizar a filtragem e classificação operações na grade com resultados de rastreamento.

O dbForge Event Profiler for SQL Server pode ser facilmente usado para monitorar os diferentes tipos de atividades do SQL Server Database Engine, Analysis Services e Integration Services, solucionar problemas relacionados ao desempenho de consultas e transações T-SQL e monitorar os diferentes erros do SQL Server e avisos.

Além disso, o dbForge Event Profiler for SQL Server pode ser usado para auditar as diferentes atividades dos usuários do banco de dados SQL Server ou realizar testes de estresse ou garantia de qualidade. Você também pode simplesmente criar seus próprios rastreamentos personalizados e salvá-los para uso futuro.

Para usar o dbForge Event Profiler for SQL Server para capturar os eventos do SQL Server, você precisa baixá-lo da página de download do dbForge, gratuitamente, e instalá-lo em seu SQL Server ou máquina usando o assistente de instalação simples, conforme abaixo :



Para iniciar o processo de instalação, clique no botão INSTALAR botão Bem-vindo página e especifique o local onde deseja instalar a ferramenta, em Selecionar destino página abaixo:



Depois de especificar o local de instalação, clique no botão Avançar botão. Nos Atalhos página, especifique se você planeja criar um ícone de atalho para a ferramenta dbForge em sua área de trabalho e clique em Avançar para prosseguir:



Nas Associações de arquivos página, você será solicitado a especificar a extensão dos arquivos que serão associados à ferramenta dbForge. Selecione a extensão dos arquivos que você planeja abrir usando esta ferramenta e clique em Avançar para prosseguir:



Na Otimização de inicialização página, revise e selecione a melhor opção para a utilização do desempenho da ferramenta e clique em Avançar para prosseguir:



Agora o processo de instalação, com base em suas seleções, será iniciado, com a barra de progresso mostrando o status do processo de instalação, conforme mostrado abaixo:



Depois que a instalação do dbForge Event Profiler for SQL Server for concluída com êxito, o assistente o notificará e fornecerá a opção de iniciar a ferramenta diretamente após fechar o assistente de instalação, conforme abaixo:



A página de boas-vindas do dbForge Event Profiler for SQL Server é fácil de usar e qualquer pessoa familiarizada com SSMS pode se adaptar facilmente a ela. Para iniciar um novo rastreamento, clique no botão Novo opção no lado direito da ferramenta, conforme abaixo:



Nos Eventos do servidor de perfil janela, você precisa fornecer as informações de conexão que serão usadas para se conectar à instância do SQL Server que será monitorada. Se for a primeira execução da ferramenta e não houver nenhuma conexão salva anteriormente, clique no botão Nova conexão botão como mostrado abaixo:



No Gerenciador de conexões janela, o Novo O botão irá movê-lo para a janela de conexão conhecida, onde você será solicitado a fornecer o nome da instância do SQL Server, o modo de autenticação e as credenciais necessárias para se conectar ao SQL Server. Depois de fornecer as informações de conexão, clique em Testar conexão botão para verificar se as informações inseridas são válidas, conforme mostrado abaixo:



Depois de fornecer as informações de conexão da instância do SQL Server, selecione se deseja usar um modelo existente de uma lista de modelos úteis que atendem à maioria das funcionalidades de rastreamento ou desmarque-o para especificar a lista de eventos que você deseja capturar na próxima etapa. Além disso, você pode especificar as propriedades do arquivo de destino, da seguinte maneira:



Sobre os Eventos a serem capturados página, você encontrará uma lista de eventos amigável e bem categorizada, que são descritos de forma significativa, sem a necessidade de mergulhar profundamente e tentar entender seus significados, conforme mostrado abaixo:



A imagem abaixo também mostra todas as categorias de eventos disponíveis, com o número de eventos em cada categoria. Agora, você pode gostar de entender todos os eventos disponíveis pelo nome da categoria, conforme mostrado claramente abaixo:



Depois de especificar a lista de eventos que você deseja capturar, as Ações página fornece a capacidade de especificar a lista de ações que você deseja capturar na sessão de evento atual, conforme mostrado abaixo:



Nos Filtros de eventos página, você também pode desenhar seus próprios filtros para minimizar o número de linhas coletadas para atender aos seus requisitos e facilitar a análise, conforme mostrado abaixo:



As Colunas permite especificar quais colunas você planeja exibir na sessão de eventos atual. Recuperar apenas as colunas que contêm as informações que você deseja capturar ajudará a minimizar significativamente o tamanho do arquivo de rastreamento e a largura das linhas retornadas, o que facilitará a análise dos dados capturados, conforme mostrado abaixo:



Depois de personalizar sua sessão de evento, você pode começar a capturar os eventos clicando no botão Executar botão da imagem anterior. Após iniciar a sessão de eventos, a ferramenta começará a capturar e exibir os eventos diretamente, conforme mostrado abaixo:



A grande vantagem aqui é que clicar em qualquer evento mostrará uma descrição completa do mesmo com o script T-SQL exibido em fonte colorida amigável dentro de uma caixa separada, o que facilita muito a verificação e análise, conforme mostrado abaixo:



Além disso, o dbForge Event Profiler for SQL Server pode funcionar como SSMS fornecendo uma opção para escrever uma nova consulta T-SQL e executá-la na instância do SQL Server conectada, conforme mostrado abaixo:



A ferramenta também exibe os dados retornados em uma grade útil que mostra cada nome de coluna, tipo de dados e valor, da seguinte forma:



A maioria dos administradores de banco de dados do SQL Server encontrou uma situação ao tentar executar um arquivo grande do SQL Server usando o SSMS que falhou com o erro OutOfMemory. O dbForge Event Profiler for SQL Server supera esse problema fornecendo um recurso para executar qualquer script T-SQL grande em um arquivo SQL. O que você precisa fazer é apenas selecionar Executar script grande opção do menu Banco de Dados, em seguida, selecione o local para esse arquivo de script, o banco de dados no qual este arquivo será executado e a codificação que é usada nesse arquivo, conforme mostrado claramente abaixo:


Conclusão


De todos os exemplos anteriores, você pode ver como a ferramenta dbForge Event Profiler for SQL Server FREE 3rd party pode ser usada para capturar e analisar os diferentes tipos de eventos do SQL Server, superando todas as desvantagens das ferramentas comuns de captura de eventos. É um GRATUITO ferramenta e definitivamente vale a pena usar.