Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS...

Preview:

Citation preview

Solução Avançada de Problemas com Extended

EventsVladimir Michel Bacurau Magalhães

MCITP | MCTS | MCP | MMI | MCT

vladimir_magalhaes@ig.com.brwww.vladimir-magalhaes.spaces.live.com

ModeradorPedro Antonio Galvão Juniorjuniorgalvao-mvp2007.spaces.live.com

Agenda• Troubleshooting no SQL Server 2005• Definição de Extended Events• Conceitos• Considerações de performance• Ciclo de vida de um evento• Exemplos

Troubleshooting no SQL Server 2005

• No SQL Server 2005 as ferramentas normalmente utilizadas para troubleshooting são:

• DBCCs• SQL Server Profiler• SQL Trace

Troubleshooting no SQL Server 2005

Troubleshooting no SQL Server 2005

• Ainda no SQL Server 2005:

• DMVs– expuseram 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• DDL Triggers• Event Notifications

Troubleshooting no SQL Server 2008

• Há situações onde o SQL Server 2005 não provê todas as informações necessárias

– Exemplo: determinadas consultas utilizam CPU em excesso, mas as DMVs não fornecem informação suficiente para determinar a causa do problema.

Extended Events• Extended Events, ou eventos extendidos, são

um sistema genérico de gerenciamento de eventos para servidores.

• Permite relacionar informações do SQL Server e do sistema operacional.

Conceitos– Evento (Event): é um ponto definido no código.

• Ex: o ponto onde um lock termina de ser adquirido

– Cada evento tem o seu “payload” determinado, ou seja, o conjunto de colunas que retorna.

– O SQL Server 2008 RTM tem 254 eventos, apesar de que mais eventos devem ser adicionados com o tempo

Conceitos• Listar os eventos existentes:

SELECT xp.[name], xo.* FROM sys.dm_xe_objects xo, sys.dm_xe_packages xpWHERE xp.[guid] = xo.[package_guid]

AND xo.[object_type] = 'event’ORDER BY xp.[name];

Conceitos

Conceitos• Eventos x ETW:

• 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.

Conceitos• Todo evento pertence a um dos quatro canais

existentes.

Canal Audiência de interesse

Admin Focado em usuários finais e DBAs

Analytic Focados em investigações de performance (similares aos SQL Trace Events RPC Starting/Completed, SP statement starting/completed e SQL statement starting/completed).

Debug Focado no suporte de produto e desenvolvedores. Utilizado para troubleshoot.

Operational Focados em usuários finais e DBAs. Demonstram eventos como database started/stopped ou attached/detached.

Conceitos• 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.

• Eventos são similares ao agrupamento de objetos do SQL Server Profiler.

Conceitos• Obter o “payload” de um determinado evento

SELECT * FROM sys.dm_xe_object_columnsWHERE [object_name] = 'sql_statement_completed'; GO

Conceitos

Conceitos• Predicado (Predicate): é o método utilizado

para filtrar eventos, utilizando regras lógicas, antes dos eventos serem consumidos.

• Ex: filtrar eventos de aquisição de lock de um determinado ObjectID.

Conceitos• Listar os predicados existentes:

SELECT *FROM sys.dm_xe_objectsWHERE object_type in ('pred_compare', 'pred_source')ORDER BY name

Conceitos

Conceitos• Ação (Action): é um conjunto de comandos que são

executados de forma síncrona, antes de um evento ser consumido.

• Normalmente adicionam mais informações ao payload do evento, como um plano de execução, por exemplo.

• São executados após a filtragem com os predicados.

Conceitos• Listar ações existentes:

SELECT xp.[name], xo.*FROM sys.dm_xe_objects xo, sys.dm_xe_packages xpWHERE xp.[guid] = xo.[package_guid]

AND xo.[object_type] = 'action'ORDER BY xp.[name];

Conceitos

Conceitos• Destino (Target): fornece uma maneira de

consumir os eventos.• Pode consumir qualquer evento (ou descartar o

mesmo caso não haja o que consumir no evento).• Targets podem consumir eventos de forma

síncrona (o código que disparou o evento espera o evento ser consumido) ou de forma assíncrona.

• http://msdn.microsoft.com/en-us/library/dd822788.aspx

Conceitos• Listar os destinos existentes:

SELECT xp.[name], xo.*FROM sys.dm_xe_objects xo, sys.dm_xe_packages xpWHERE xp.[guid] = xo.[package_guid]

AND xo.[object_type] = 'target' ORDER BY xp.[name];

Conceitos

ConceitosTarget Type Sync Async

Event Bucketing X X

Event File X

Event Pairing X

Event Tracing for Windows (ETW) X

Ring Buffer X

Synchronous Event Counter X

Conceitos• Pacotes (Packages): é um container que define

objetos de eventos extendidos (eventos, ações, destinos).

• Pacotes são encontrados dentro dos módulos (DLLs, executáveis)

Conceitos• Sessão (session): maneira de “conectar”

objetos de eventos extendidos para processamento (um evento com uma ação para ser consumido por um destino.

• Listar as sessões ativas:SELECT * FROM sys.dm_xe_sessions;

Conceitos

Conceitos• Mapas (Maps): permitem que o usuário

entenda o sentido do valor, fornecendo descrições sobre os valores internos.

• Os mapas contêm tudo desde estados do broker até os wait types, e incluem até o canal e palavra-chave para categorizar eventos em seus respectivos grupos.

Conceitos• Listar os mapas existentes:

SELECT name, map_key, map_valueFROM sys.dm_xe_map_valuesORDER BY name, map_key

Considerações de Performance

• Eventos síncronos x Eventos assíncronos?

• Eventos assíncronos x buffering

• Perda de eventos x Performance

Ciclo de vida de um evento• Após a definição de uma sessão de eventos

extendidos o processamento continua o mesmo até que o código monitorado encontre um evento.

Ciclo de vida de um evento

Exemplos• Vamos agora ao SSMS!

Obrigado pelo Apoio

Did you know?SQL Server Central has highly active forums, where you can get a response to a question on SQL Server and other topics in a matter of minutes.

Did you know?Simple-Talk.com has a wealth of articles written by industry experts on SQL Server, .NET and SysAdmin, with no registration required to access each article.

Did you know?

“Red Gate Software sponsored SQL Server Day. We’d love to hear your comments and suggestions about our tools. To get in touch just email communities@red-gate.com"Annabel Bradford Red Gate Software

http://www.sqlpass.org/

Sugestão de Leitura• http://www.sqlteam.com/article/introduction-to-sql-server-2008-extende

d-events

• http://technet.microsoft.com/en-us/magazine/2009.01.sql2008.aspx?pr=blog

• http://msdn.microsoft.com/en-us/library/dd822788.aspx

• http://www.sqlteam.com/article/advanced-sql-server-2008-extended-events-with-examples

• http://www.sqlservercentral.com/articles/deadlock/65658/

© 2006 Microsoft Corporation. Todos os direitos reservados.O propósito desta apresentação é apenas informativa. Microsoft não faz nenhuma garantia expressa ou implícita nesta apresentação.

Seu potencial. Nossa inspiração.MR

Obrigado !

Recommended