Gerenciando e Criando Extended Events no SSMS do SQL Server 2012

Posted on junho 30, 2012

0


 

O Extended Events foi lançado no SQL Server 2008, esse recurso para quem não o conheçe é o mecanismo de monitoramento e análise de eventos do SQL Server. Porém o SQL Server é baseado em eventos então, com esse robusto recurso é possível consumir diversas informações para que assim a análise das informações seja mais efetiva.

 

O SQL Profiler é uma ferramenta de monitoramento, porém o custo efetivo do mesma é pesado e em por exigir bastante do servidor. Isso ocorre porque para que o profiler execute é realizado um trace dentro do servidor e isso causa na maioria das vezes um overhead.

 

No SQL Server 2008 os Extended Events podiam ser criados somente em T-SQL, porém no SQL Server 2012 uma nova e rica interface foi construída para a facildade de criação e gerenciamento.

 

Para realizarmos a criação de um Extended Event, iremos conectar no banco de dados SQL Server 2012 Management – Extended Events – dois cliques e após isso, botão direito em New session wizard.

Untitled

(Figura 1 – Criação de um Extended Event.)

 

Nesse momento será aberto um wizard aonde ajudará você a realizar a construção de um novo Extended Event.

 

image

(Figura 2 – Nome da sessão (Conexões SQL Server) assim como opção de iniciar o evento ao iniciar o servidor.)

 

image

(Figura 3 – Configuração de um tracking para conexão.)

 

Nesse momento possuímos dois tipos de configuração.

 

Use this event session template

Para nos ajudar, há alguns modelos já prontos, eventos nos quais são mais comuns, portanto somente a título de exemplo iremos utilizar o template de Connection Tracking, aonde ele realizará a captura de diversas informações sempre que houver uma nova conxão com o servidor.

Dot not use a template

Aqui você pode especificar o que você deseja capturar, o controle passa a ser totalmente seu ou seja o poder está sem suas mãos.

 

image

(Figura 4 – É possível ver a descrição de todos os eventos associados, como há muito eventos há uma pesquisa dentro da biblioteca, o que facilita bastante na hora de acrescentar um novo evento.)

 

image

(Figura 5 – É possível capturar os eventos globais, assim como host_name, sql_text, database name dentre outras informações, é posível acrescentar mais informações para o seu Extended Event.)

 

image

(Figura 6 -  Se desejar, você pode realizar a criação de filtros, assim você pode combinar diversas condições utilizando OR e AND.)

 

image

(Figura 7 – Configurando e salvando o arquivo .XEL)

 

 

image

(Figura 8 – Sumário.)

 

 

Se desejar utilizar novamente, clique em Script….

 

CREATE EVENT SESSION [Conexões SQL Server] ON SERVER

ADD EVENT sqlserver.connectivity_ring_buffer_recorded(

    ACTION(sqlserver.client_app_name,sqlserver.client_connection_id,sqlserver.client_hostname,sqlserver.context_info,sqlserver.database_name,sqlserver.server_principal_name,sqlserver.session_id,sqlserver.sql_text)),

ADD EVENT sqlserver.login(SET collect_options_text=(1)

    ACTION(sqlserver.client_app_name,sqlserver.client_connection_id,sqlserver.client_hostname,sqlserver.context_info,sqlserver.database_name,sqlserver.server_instance_name,sqlserver.server_principal_name,sqlserver.sql_text)),

ADD EVENT sqlserver.logout(

    ACTION(sqlserver.client_app_name,sqlserver.client_connection_id,sqlserver.client_hostname,sqlserver.context_info,sqlserver.database_name,sqlserver.server_instance_name,sqlserver.server_principal_name,sqlserver.session_id,sqlserver.sql_text))

ADD TARGET package0.event_file(SET filename=N’C:\Temp\DadosAcessoBasedeDados.xel’,max_rollover_files=(2)),

ADD TARGET package0.ring_buffer

WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=ON,STARTUP_STATE=ON)

GO

image

(Figura 9 – Após criação, você poderá verificar todos os eventos que estão sendo capturados, para isso marque as opções. Ele iniciára a sessão e te levará a uma tela aonde você tera acesso as informações.)

 

 

image

(Figura 10 – Informaões de login e logout sendo coletadas com sucesso.)

 

Deseja mais informações sobre Extended Events, sugiro leitura no MSDN, segue links – http://msdn.microsoft.com/en-us/library/bb630354(v=sql.105).aspx e http://msdn.microsoft.com/en-us/library/bb630282.aspx