Guia SQL Server para DBAs

Extended Events no SQL Server

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (3)  (0)

Este artigo irá explicar qual é a arquitetura dos Extended Events do SQL Server e como configurar uma sessão de monitoração de deadlocks para exemplificar suas funcionalidades e recursos disponíveis.

Fique por dentro
Nas versões mais recentes do SQL Server, uma nova ferramenta de monitoração foi desenvolvida para auxiliar o trabalho dos administradores de banco de dados: os Extended Events. Este artigo irá explicar qual é a arquitetura dos Extended Events (XE) e como configurar uma sessão de monitoração de deadlocks para exemplificar suas funcionalidades e recursos disponíveis. Monitorar um ambiente de banco de dados é uma atividade essencial para todo administrador de banco de dados, seja rastreando a causa de um problema ou simplesmente coletando informações para uma baseline do ambiente. A monitoração exige custo de processamento e pode impactar negativamente no desempenho de uma instância. O Extended Events traz um novo conceito, o qual consome menos recursos e permite configurações práticas e simples de utilizar.

Todo banco de dados precisa de manutenção e monitoramento. É essencial conhecer em detalhes o ambiente que está sendo analisado e, para isso, é necessário coletar dados que vão desde o consumo de hardware, até o consumo de processamento exercido por determinada aplicação. Nem sempre é uma tarefa fácil conseguir dados importantes que sejam úteis para analisar a causa de um problema e chegar a uma solução. Entender o que está ocorrendo no ambiente em determinado momento é imprescindível para conhecer qual é a melhoria a ser aplicada.

São vários os problemas encontrados entre os mais variados ambientes de bancos de dados existentes. Há queries mal escritas, deadlocks (BOX 1) causados por equívocos de programação, alto consumo de I/O, problemas de leitura ou gravação em dispositivos de armazenamento, sobrecarga de processadores e outras diversas situações que podem impactar na saúde do ambiente de banco de dados.

BOX 1. Definição de Deadlock

Segundo a Microsoft, quando duas tarefas estão bloqueadas de forma permanente por possuírem um recurso que a outra está tentando bloquear, ocorre um deadlock.

Monitorar o ambiente para identificar a causa de um problema ou criar uma linha base para futuras comparações pode ser feito de diversas formas. Há como o usar o SQL Server Profiler, DMVs, data collection e outros meios customizados. No entanto, frente à grande necessidade de monitoramento, a Microsoft investiu nesse aspecto e lançou um novo recurso que veio para agilizar essa tarefa e melhorar a qualidade das análises.

A versão 2008 do SQL Server trouxe uma novidade para auxiliar na monitoração dos ambientes de banco de dados: o Extended Events (XE). Porém, essa ferramenta não foi muito explorada inicialmente por não ter uma interface gráfica nativa em sua primeira versão e, portanto, necessitava de muitas linhas de código para ser configurada. Com isso, o SQL Server Profiler ainda continuou a ser muito utilizado para monitorar ambientes.

Com a chegada da versão 2012, o Extended Events ganhou uma atenção maior por trazer uma interface gráfica nativa no Management Studio, além de ser muito simples e prático em sua utilização. Dessa forma, o XE ganhou uma atenção maior de muitos DBAs e passou a ser mais explorado. Além disso, a Microsoft anunciou também que o SQL Server Profiler será substituído pelo XE em versões futuras, o que torna ainda mais importante o estudo dessa funcionalidade.

O Extended Events foi elaborado para monitorar os eventos apenas quando eles ocorrem, diferente do SQL Server Profiler, que fica analisando o tempo todo, mesmo quando um determinado evento monitorado não está ocorrendo. Por conta disso, o XE exige menos recurso de processamento, aliviando a carga do servidor de banco de dados.

A quantidade de eventos que podem ser monitorados pelo XE é bem superior à do SQL Server Profiler. Enquanto o XE contempla cerca de 872 eventos que podem ser monitorados, o antigo SQL Server Profiler tem capacidade de cerca de 180 eventos. Além disso, informações mais detalhadas podem ser obtidas através do XE.

Um ponto a ser destacado é que o Extended Events já tem eventos de monitoração compatíveis com In-memory, AlwaysOn e ColumnStore Indexes, recursos que o SQL Server Profiler não é compatível.

Nesse artigo há uma descrição de como funciona a arqui" [...]

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Ficou com alguma dúvida?