Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
1200
Assunto : SQL Server
Titulo: Capturar Blocked Process com Extended Events

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Na dica anterior (http://www.bufaloinfo.com.br/dicas.aspx?cod=1199) vimos como criar um alerta para nos avisar quando houverem blocked process, porém o alerta não é suficiente para recuperar as informações sobre qual o processo bloqueado e quem o estava bloqueando.

Podemos fazer isso com o SQL Profiler, porém o profiler encontra-se deprecated. Vamos ver então como chegar ao mesmo resultado utilizando os Extended Events.

O primeiro passo é criar e iniciar uma sessão XE para capturar o evento blocked_process_report:

CREATE EVENT SESSION [Blocked] ON SERVER
ADD EVENT sqlserver.blocked_process_report
ADD TARGET package0.event_file
(SET filename=N'C:\xel\blocked.xel')
GO

ALTER EVENT SESSION [Blocked]
ON SERVER
STATE = start;
GO


Agora precisamos ler os arquivos .XEL gerados pela sessão e extrair os dados do XML para identificarmos as causas dos blocked process:

select theNodes.event_data.value('(//blocked-process/process)[1]/@spid','int') as blocking_process,
theNodes.event_data.value('(//blocked-process/process/inputbuf)[1]','varchar(max)') as blocking_text,
theNodes.event_data.value('(//blocked-process/process)[1]/@clientapp','varchar(100)') as blocking_app,
theNodes.event_data.value('(//blocked-process/process)[1]/@loginname','varchar(50)') as blocking_login,
theNodes.event_data.value('(//blocked-process/process)[1]/@isolationlevel','varchar(50)') as blocking_isolation,
theNodes.event_data.value('(//blocked-process/process)[1]/@hostname','varchar(50)') as blocking_host,
theNodes.event_data.value('(//blocking-process/process)[1]/@spid','int') as blocked_process,
theNodes.event_data.value('(//blocking-process/process/inputbuf)[1]','varchar(max)') as blocked_text,
theNodes.event_data.value('(//blocking-process/process)[1]/@clientapp','varchar(100)') as blocked_app,
theNodes.event_data.value('(//blocking-process/process)[1]/@loginname','varchar(50)') as blocked_login,
theNodes.event_data.value('(//blocked-process/process)[1]/@isolationlevel','varchar(50)') as blocked_isolation,
theNodes.event_data.value('(//blocking-process/process)[1]/@hostname','varchar(50)') as blocked_host
from
(select convert(xml,event_data) event_data
from
sys.fn_xe_file_target_read_file('c:\xel\blocked*.xel', NULL, NULL, NULL)) theData
cross apply theData.event_data.nodes('//event') theNodes(event_data)


Com isso podemos analisar as causas de bloqueios mais comuns em nosso servidor.


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 1/31/2017 11:01:00 AM
nome: SuspfLEwImDtq
email: derby451@hotmail.com
comentário:
niS3xG http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/29/2017 8:17:00 AM
nome: ISgjZsmKmjRRR
email: jogcbfn@hotmail.com
comentário:
SBNlVc http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/29/2017 8:12:00 AM
nome: ozaPicwlJnKqnaVZc
email: derby451@hotmail.com
comentário:
xoVv8c http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/5/2017 12:41:00 PM
nome: hAoVqskQdudeXuj
email: jfvynms4281rt@hotmail.com
comentário:
lTe7Md http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com

data: 12/30/2016 1:03:00 PM
nome: gLMDwYRuhbEIQZ
email: jfvynms4281rt@hotmail.com
comentário:
sAbIqs http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com

 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br