solução avançada de problemas com extended events vladimir michel bacurau magalhães mcitp | mcts...

44
Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT [email protected] www.vladimir-magalhaes.spaces.live.com Moderador Pedro Antonio Galvão Junior juniorgalvao-mvp2007.spaces.live.com

Upload: julia-tinoco

Post on 07-Apr-2016

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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

Page 2: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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

Page 3: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Troubleshooting no SQL Server 2005

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

• DBCCs• SQL Server Profiler• SQL Trace

Page 4: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Troubleshooting no SQL Server 2005

Page 5: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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

Page 6: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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.

Page 7: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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.

Page 8: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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

Page 9: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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];

Page 10: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Conceitos

Page 11: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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.

Page 12: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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.

Page 13: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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.

Page 14: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Conceitos• Obter o “payload” de um determinado evento

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

Page 15: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Conceitos

Page 16: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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.

Page 17: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Conceitos• Listar os predicados existentes:

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

Page 18: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Conceitos

Page 19: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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.

Page 20: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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];

Page 21: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Conceitos

Page 22: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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

Page 23: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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];

Page 24: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Conceitos

Page 25: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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

Page 26: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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)

Page 27: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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;

Page 28: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Conceitos

Page 29: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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.

Page 30: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Conceitos• Listar os mapas existentes:

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

Page 31: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Considerações de Performance

• Eventos síncronos x Eventos assíncronos?

• Eventos assíncronos x buffering

• Perda de eventos x Performance

Page 32: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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.

Page 33: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Ciclo de vida de um evento

Page 34: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Exemplos• Vamos agora ao SSMS!

Page 37: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Obrigado pelo Apoio

Page 38: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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.

Page 39: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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.

Page 40: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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 [email protected]"Annabel Bradford Red Gate Software

Page 41: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

http://www.sqlpass.org/

Page 42: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

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/

Page 43: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

© 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

Page 44: Solução Avançada de Problemas com Extended Events Vladimir Michel Bacurau Magalhães MCITP | MCTS | MCP | MMI | MCT vladimir_magalhaes@ig.com.br

Obrigado !