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