Dicas para um DBA Iniciante – Encontrando HeadBlockers e resolvendo bloqueios

Fala galera, tudo bem?

No vídeo de hoje quero demonstrar para vocês um cenário bem comum encontrado no dia a dia de um DBA, que são as cadeias de bloqueios, e como podemos resolvê-las.

O script que utilizei durante o vídeo encontra-se a seguir:


SELECT
SPID,
BLOCKED,
REPLACE (REPLACE (T.TEXT, CHAR(10), ' '), CHAR (13), ' ' ) AS BATCH
INTO
#Temp_Table
FROM
sys.sysprocesses R
CROSS APPLY
sys.dm_exec_sql_text(R.SQL_HANDLE) T
GO
WITH BLOCKERS (SPID, BLOCKED, LEVEL, BATCH)
AS
(
SELECT
SPID,
BLOCKED,
CAST (REPLICATE ('0', 4-LEN (CAST (SPID AS VARCHAR))) + CAST (SPID AS VARCHAR) AS VARCHAR (1000)) AS LEVEL,
BATCH
FROM
#Temp_Table R
WHERE
(BLOCKED = 0 OR BLOCKED = SPID)
AND
EXISTS (SELECT * FROM #Temp_Table R2 WHERE R2.BLOCKED = R.SPID AND R2.BLOCKED <> R2.SPID)
UNION ALL
SELECT
R.SPID,
R.BLOCKED,
CAST (BLOCKERS.LEVEL + RIGHT (CAST ((1000 + R.SPID) AS VARCHAR (100)), 4) AS VARCHAR (1000)) AS LEVEL,
R.BATCH
FROM
#Temp_Table AS R
INNER JOIN
BLOCKERS
ON
R.BLOCKED = BLOCKERS.SPID
WHERE
R.BLOCKED > 0
AND
R.BLOCKED <> R.SPID
)
SELECT
N' ' + REPLICATE (N'| ', LEN (LEVEL)/4 - 1) +
CASE WHEN (LEN(LEVEL)/4 - 1) = 0
THEN 'HEAD - '
ELSE '|----- ' END
+ CAST (SPID AS NVARCHAR (10)) + N' ' + BATCH AS BLOCKING_TREE
FROM
BLOCKERS
ORDER BY
LEVEL ASC
GO

Espero que gostem e não deixem de inscreverem-se no blog, no canal do youtube, no grupo de discussão SQLManiacs  e em nosso grupo no TELEGRAM.

Grande abraço a todos.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

%d blogueiros gostam disto: