160 likes | 260 Views
O que é SQL Server Extended Events ?. 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. Porquê um novo mecanismo?.
E N D
O que é SQL Server ExtendedEvents? ExtendedEvents • 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.
Porquê um novo mecanismo? ExtendedEvents • 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.
ExtendedEvents e outros mecanismos de monitorização/profiling ExtendedEvents • 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
ExtendedEvents e outros mecanismos de monitorização/profiling ExtendedEvents • 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
ExtendedEvents e outros mecanismos de monitorização/profiling ExtendedEvents • 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
Formas de utilização ExtendedEvents • Monitorizar • Lock’s • Waitstats • Timeouts • Utilização excessiva de recursos • Criação de mecanismos de auditoria • Encontrar interacções inesperadas, através do ETW
Conceitos ExtendedEvents • 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
Conceitos ExtendedEvents • 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.
Conceitos ExtendedEvents • 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.
Conceitos ExtendedEvents • 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
Conceitos ExtendedEvents • 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
Conceitos ExtendedEvents • Types • Maps • Packages
Ciclo de vida ExtendedEvents • 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.
Ferramentas ExtendedEvents • 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-events-code-generator-v1-001-a-quick-fix.aspx
Denali ExtendedEvents • 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
Recursos ExtendedEvents • 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.aspx • http://www.sqlskills.com/blogs/jonathan/category/Extended-Events.aspx • http://msdn.microsoft.com/en-us/library/bb630282.aspx