Extended Events
O que é SQL Server Extended Events?
• SQL Server Extended Events é um mecanismo de eventos criado no próprio código do
SQL Server.
• É manipulável por querys DDL.
• Foi introduzido na versão SQL Server 2008 e tem vindo a evoluir a cada nova versão.
Extended Events
Porquê um novo mecanismo?
• Com a crescente complexidade dos sistemas, a utilização mais intensiva dos recursos
disponíveis, a necessidade de mais informação e mais detalhada, relacionar os eventos
do SQL Server com os eventos do S.O. e aplicações, a necessidade de um sistema
dinâmico, …
•A Microsoft criou este mecanismo por forma a responder a estas e outras solicitações
da comunidade SQL Server.
Extended Events
Extended Events e outros mecanismos de monitorização/profiling
• Profiler
•Extended events irá substituir o profiler pois:
•Consome menos recursos
•É mais rápido
•Tem várias formas de armazenar a informação
•Tem um sistemas de “filtragem” avançado
•Permite efectuar alterações em sessões que se encontram em execução
•Permite recolher mais informação e mais detalhada
•Permite indicar o que fazer se o sistema ficar com excesso de carga
Extended Events
Extended Events e outros mecanismos de monitorização/profiling
• ETW (Event Tracing for Windows)
• Permite efectuar, em certas situações, uma correlação entre eventos dos SQL
Server e eventos do S.O. e/ou aplicações
• Suporta as versões Windows XP e Windows Server 2003 do ETW
• Síncrono
Extended Events
Extended Events e outros mecanismos de monitorização/profiling
• DMV’s
•Complementam-se
•Contêm metadata relativa aos Extended Events
•Eventos
•Acções
•Predicados
•Extended Events não funcionam como timestamp
•Com Extended Events pode-se filtrar por uma sessão especifica
Extended Events
Formas de utilização
• Monitorizar
•Lock’s
•Waitstats
•Timeouts
•Utilização excessiva de recursos
• Criação de mecanismos de auditoria
• Encontrar interacções inesperadas, através do ETW
Extended Events
Conceitos
• Sessão (Session)
Uma sessão é onde se agrupa os vários events, actions, predicates e “Targets”.
Muito semelhante a uma sessão do profiler.
Podem ser configuradas para iniciarem automaticamente quando o SQL Server
inicia.
O SQL Server já tem uma sessão que inicia automaticamente, system_health
session
Extended Events
Conceitos
• Evento (Event)
São trace points que já se encontram no código do SQL Server.
Podem ser adicionados a uma sessão que já se encontre em execução.
Cada evento recolhe informação relativa a esse evento.
O schema de um evento não tem de ser o mesmo de outro evento.
Por essa razão a informação é disponibilizada no formato XML.
Extended Events
Conceitos
• Acções (Action)
Permitem adicionar mais informação/contexto a um evento.
As acções são processadas em modo síncrono.
Qualquer acção pode ser associada a qualquer evento.
Extended Events
Conceitos
• Predicados (Perdicates)
Funcionam como filtros.
São expressões booleanas.
São avaliadas antes do processamento das acções.
Existe o conceito de “state” que permite filtrar só os primeiros 3 eventos ou todos
os eventos pares.
Podem operar com base na informação do evento ou global
Extended Events
Conceitos
• Targets
Destino da informação recolhida
•Event Bucketing
•Event pairing
•ETW
•Event file
•Synchronous event counter
•Ring Buffer
Modo de armazenamento pode ser síncrono ou assíncrono, existem destinos que
só funcionam no modo síncrono.
Qualquer evento pode ser consumido por qualquer Target.
Pode processar no modo evento-a-evento ou utilizado Buffers
Extended Events
Conceitos
• Types
•Maps
•Packages
Extended Events
Ciclo de vida
• Pre-Collect – Verifica se o evento que ocorreu no SQL Server encontra-se registado em
alguma sessão em execução.
•Collection – Recolhe toda a informação relativa a esse evento
•Post-Collect – Aplica os predicates (filtra)
•Publish
•Acções – Executa as acções associadas ao evento na sessão, em modo síncrono.
•Targets síncronos – Armazena a informação nos targets síncronos se existirem.
•Targets assíncronos - Armazena a informação nos buffers utilizados pelos targets
assíncronos.
Extended Events
Ferramentas
• Add-in para o SSMS 2008/2008 R2
http://extendedeventmanager.codeplex.com/
•Extended Events Code Generator V1.001
http://sqlblog.com/blogs/adam_machanic/archive/2010/05/08/extended-eventscode-generator-v1-001-a-quick-fix.aspx
Extended Events
Denali
• Já existe UI (Session Wizard e Session UI)
•Todos os eventos existentes no profiler já existem no Extended Events do Denali
•Existem mais eventos no Denali do que no Profiler ( Always On, SQL CLR, UCS, …)
•Foram removidos do Denali alguns eventos que existem nas versão 2008/2008 R2
•Management API
•Reader API
Extended Events
Recursos
• DMV’s (sys.dm_xe_...)
•http://blogs.msdn.com/b/extended_events/
•http://sqlblog.com/blogs/adam_machanic/archive/tags/extended+events/default.aspx
•http://www.sqlskills.com/blogs/paul/category/Extended-Events.aspx
•SQL PASS 24 hours (7 Setembro às 14:00 GMT) com Jonathan Kehayias da SQL Skills
http://www.sqlpass.org/24hours/fall2011/SessionsbySchedule.aspx
•http://sqlblog.com/blogs/jonathan_kehayias/archive/tags/Extended+Events/default.asp
x
•http://www.sqlskills.com/blogs/jonathan/category/Extended-Events.aspx
•http://msdn.microsoft.com/en-us/library/bb630282.aspx
Download

Extended Events