Troubleshooting no SQL Server 2008 com Extendeds Events – Parte 1.

Troubleshooting no SQL Server 2008 com Extendeds Events – Parte 1.

Pessoal, boa tarde.

Tudo bem com você?

Após um período de reflexão, inatividade e um pouco de cuidados com a minha saúde, estou de volta com minhas atividades, principalmente em relação ao meu blog.

Neste últimos dias andei pensando qual poderia seria ser a nova série de assuntos que gostaria de abordar em meu blog, pesquisei muito na Internet, vasculhei também meus Scripts e não poderia deixar de consultar o fantástico Books On-Line.

Muito bem, repleto de ideias e pensamentos, como também curioso para aprender algo novo, vou começar hoje a apresentar um pouco sobre os chamados Extendeds Events, mais conhecidos como Eventos Estendidos. De que forma este recurso pode ser utilizado no SQL Server 2008 como uma ferramenta ou técnica para Troubleshooting.

Antes de querer apresentar algum tipo de código, cenários, formas de uso, vou tentar explicar inicialmente o que estes eventos estendidos representam para o SQL Server e também para o próprio Windows.

Troubleshooting SQL Server 2005?

Apesar do SQL Server 2005 ter aumentado a gama de recursos para troubleshooting ainda havia alguns problemas com tais
ferramentas. Os comandos DBCC precisam ter seu resultado armazenado em algum local, como uma tabela, para posterior análise, e utilizar o SQL Trace/SQL Server Profiler pode consumir muitos recursos do servidor, principalmente se não utilizados com os devidos cuidados.

Ainda no SQL Server 2005:  As DMVs apresentam uma série de informações internas do SQL Server. Parte das informações já podiam ser obtidas através de DBCCs, só que agora de forma mais fácil e completa. Outras possibilidades seriam utilizar os DDL Triggers e também os Event Notifications.

Justamente para tentar melhorar e possibilitar outras formas de resolução de problemas que o Extendeds Events foram criados.

Para isso vamos começar com a seguinte pergunta.

O que seriam Extendeds Events?

Basicamente os Extendeds Events (Eventos Estendidos) são reconhecidos como um sistema de manipulação de eventos para sistemas operacionais de servidores. A infraestrutura de Eventos Estendidos oferece suporte à correlação de dados do SQL Server e, em certas condições, à correlação de dados entre sistema operacional e aplicativos de banco de dados.

Podem também ser definidos ou denominados como, um sistema genérico de gerenciamento de eventos para servidores. Permitindo relacionar informações do SQL Server e do sistema operacional.

Uma das principais vantagens dos Extended Events é o fato de podermos relacionar estes com a estrutura de Event Tracing for
Windows (ETW), que é uma estrutura que permite obter informações de diagnóstico no Windows.
Os eventos no SQL Server são categorizados de forma similar a encontrada no ETW, utilizando os chamados Channels (canais) e Keywords (palavras-chave). Isso foi feito exatamente para permitir a correlação de informações.

O sistema Eventos Estendidos tem os seguintes principais aspectos:

  • O mecanismo Eventos Estendidos é agnóstico, o que permite que o mecanismo associe qualquer evento a qualquer destino porque não é restrito ao conteúdo do evento.
  • Os eventos são separados dos consumidores de evento, que são chamados destinos em Eventos Estendidos. Isso significa que qualquer destino pode  receber qualquer evento. Além disso, qualquer evento gerado pode ser consumido automaticamente pelo destino, que pode registrar ou fornecer contexto de evento adicional.
  • Os eventos são distintos quanto à ação no disparo de um evento. Como resultado, qualquer ação pode ser associada a qualquer evento.

O mecanismo Eventos Estendidos pode gerar dados de evento de forma síncrona (e processar os dados de forma assíncrona) o que fornece uma solução flexível para manipulação de eventos. Além disso, o mecanismo Eventos Estendidos fornece os seguintes recursos:

  • Uma abordagem unificada no tratamento de eventos em todo o sistema de servidor, permitindo, ao mesmo tempo, que os usuários isolem eventos específicos com a finalidade de solucionar problemas;
  • Um mecanismo de tratamento de evento completamente configurável com base no Transact-SQL; e
  • A habilidade de monitorar processos ativos dinamicamente com efeito mínimo sobre esses processos.

Os Eventos Estendidos possuem alguns elementos que formam a sua estrutura básica de funcionamento, dentre estes elementos, vou destacar inicialmente os Predicados.

O que é um Predicado?

Os Predicados são conhecidos como filtros dinamicos envolvidos nos disparos realizados para cada evento, com objetivo de aumentar a flexibilidade da infraestrutura do mecanismo Eventos Estendidos.

Outro elemento importante que esta diretamente relacionado com os Eventos Estendidos, são os chamados Events(Eventos):
O que é um Evento? Qual sua finalidade?
Evento (Event): é um ponto definido no código. Cada evento tem o seu “payload” determinado, ou seja, o conjunto de colunas que retorna. O SQL Server 2008 RTM apresenta 254 eventos, apesar de que mais eventos devem ser adicionados com o tempo.
Todo evento pertence a um dos quatro canais existentes, conforme a tabela abaixo:
Além de pertencer a um canal, estes são agrupados em palavras-chave, que são basicamente a parte do sistema que diz ter ativado o evento. Os Eventos podem ser considerados objetos similares a agrupamento de objetos do SQL Server Profiler.
Observação: Dentre estes diversos eventos existentes na versão 2008 RTM, alguns apresetam problemas que foram corrigidos, a partir da aplicação do Service Pack1 para o SQL Server 2008.
Bem pessoal, vou encerrar esta primeira parte aqui. Acredito que para começar a falar deste assunto os conceitos básicos já foram apresentados, o que nos deixa capaz de entender e começar a imaginar como os Extendeds Events podem ser utilizados.
Na próxima parte, vou destacar os demais conceitos que podem ser utilizados com este recurso, como também, suas tabelas e visões de sistemas.
Por enquanto muito obrigado, agradeço mais uma vez sua visita, nos encontramos nos próximos dias.
Até mais.

Autor: Junior Galvão - MVP

Profissional com vasta experiência na área de Tecnologia da Informação e soluções Microsoft. Pós-Graduado no Curso de Gestão e Engenharia de Processos para Desenvolvimento de Software com RUP na Faculdade FIAP – Faculdade de Informática e Administração Paulista de São Paulo. Graduado no Curso Superior em Gestão da Tecnologia de Sistemas de Informação pela Uninove – Campus São Roque. Formação MCDBA Microsoft, autor de artigos acadêmicos e profissionais postados em Revistas, Instituições de Ensino e WebSistes. Meu primeiro contato com tecnologia ocorreu em 1994 após meus pais comprarem nosso primeiro computador, ano em que as portas para este fantástico mundo se abriram. Neste mesmo ano, comecei o de Processamento de Dados, naquele momento a palavra TI não existia, na verdade a Tecnologia da Informação era conhecida como Computação ou Informática, foi assim que tudo começou e desde então não parei mais, continuando nesta longa estrada até hoje. Desde 2001 tenho atuado como Database Administrator – Administrador de Banco de Dados – SQL Server em tarefas de Administração, Gerenciamento, Migração de Servidores e Bancos de Dados, Estratégias de Backup/Restauração, Replicação, LogShipping, Implantação de ERPs que utilizam bancos SQL Server, Desenvolvimento de Funções, Stored Procedure, entre outros recursos. Desde 2008 exerço a função de Professor Universitário, para as disciplinas de Banco de Dados, Administração, Modelagem de Banco de Dados, Programação em Banco de Dados, Sistemas Operacionais, Análise e Projetos de Sistemas, entre outras. Experiência na Coordenação de Projetos de Alta Disponibilidade de Dados, utilizando Database Mirroring, Replicação Transacional e Merge, Log Shipping, etc. Trabalhei entre 2011 e 2017 como Administrador de Banco de Dados e Coordenador de TI no FIT – Instituto de Tecnologia da Flextronics, atualmente exerço a função de Professor Universitário na FATEC São Roque. CTO da Galvão Tecnologia, consultoria especializada em Gestão de TI, Administração de Servidores Windows Server, Bancos de Dados Microsoft SQL Server e Virtualização. Possuo titulação Oficial Microsoft MVP e reconhecimentos: MCC, MSTC e MIE.

2 comentários em “Troubleshooting no SQL Server 2008 com Extendeds Events – Parte 1.”

Os comentários estão encerrados.