solução avançada de problemas com extended events vladimir michel bacurau magalhães mcitp | mcts...
TRANSCRIPT
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!
Ferramentas para troubleshooting
• SQLdiag
• RML Utilities
• Performance Dashboard Reports
• DMVStats
Ferramentas para gerenciamento de Extended Events
• Extended Events Manager
• Ntrace
• XPerf
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 [email protected]"Annabel Bradford Red Gate Software
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 !