Skip to content

Instantly share code, notes, and snippets.

@lafleurh
Created April 28, 2020 21:22
Show Gist options
  • Save lafleurh/89944e7f5d731a004855d5e1fa41420d to your computer and use it in GitHub Desktop.
Save lafleurh/89944e7f5d731a004855d5e1fa41420d to your computer and use it in GitHub Desktop.
Get processes blocking each other and the queries being run
CREATE TABLE #tempHAL (
SPID NVARCHAR(255),
Status NVARCHAR(255),
Login NVARCHAR(255),
HostName NVARCHAR(255),
BlkBy NVARCHAR(255),
DBName NVARCHAR(255),
Command NVARCHAR(MAX),
CPUTime NVARCHAR(255),
DiskIO NVARCHAR(255),
LastBatch NVARCHAR(255),
ProgramName NVARCHAR(255),
SPID2 NVARCHAR(255),
REQUESTID NVARCHAR(255)
);
INSERT INTO #tempHAL
EXEC SP_WHO2
-- Select blocked PIDs and blockers
DECLARE @PID int, @sql NVARCHAR(MAX)
DECLARE @DBCCEventData AS TABLE (EventType NVARCHAR(255), [Parameters] int, EventInfo NVARCHAR(MAX), PID int)
DECLARE @EventData AS TABLE (EventType NVARCHAR(255), [Parameters] int, EventInfo NVARCHAR(MAX), PID int)
DECLARE csrBlk CURSOR FOR SELECT DISTINCT PID.SPID FROM #tempHAL PID INNER JOIN #tempHAL BLK
ON PID.SPID = BLK.BlkBy OR PID.BlkBy != ' .'
OPEN csrBLK
FETCH csrBlk INTO @PID
WHILE @@FETCH_STATUS = 0
BEGIN
DELETE FROM @DBCCEventData
SET @sql = 'DBCC INPUTBUFFER (' + CAST(@PID AS NVARCHAR(10)) + ')'
INSERT INTO @DBCCEventData (EventType, [Parameters], EventInfo)
EXEC (@sql)
UPDATE @DBCCEventData SET PID = @PID
INSERT INTO @EventData SELECT * FROM @DBCCEventData
FETCH csrBlk INTO @PID
END
CLOSE csrBLK
DEALLOCATE csrBLK
SELECT DISTINCT PID.*, S.EventInfo FROM #tempHAL PID INNER JOIN #tempHAL BLK
ON PID.SPID = BLK.BlkBy OR PID.BlkBy != ' .' LEFT OUTER JOIN @EventData S ON PID.SPID = CAST(S.PID AS VARCHAR(10))
GO
DROP TABLE #tempHAL
GO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment