Skip to content

Instantly share code, notes, and snippets.

View Otterpohl's full-sized avatar
🐌

Tristan Otterpohl Otterpohl

🐌
  • London
  • 09:55 (UTC +01:00)
View GitHub Profile
@Otterpohl
Otterpohl / Get-DatabaseBufferCacheStatus.sql
Created May 13, 2022 13:58
Gets how much data is stored in cache per table
/*
https://blog.sqlauthority.com/2010/06/17/sql-server-data-pages-in-buffer-pool-data-stored-in-memory-cache/
*/
SELECT COUNT(*) AS cached_pages_count
,obj.name
,obj.index_id
,i.name AS IndexName
FROM sys.dm_os_buffer_descriptors AS bd
INNER JOIN
@Otterpohl
Otterpohl / Get-BlockingTree.sql
Created May 13, 2022 13:43
Generates Blocking Tree in Table Format
/*
https://blog.sqlauthority.com/2020/04/20/sql-server-blocking-tree-identifying-blocking-chain-using-sql-scripts/
*/
IF OBJECT_ID('tempdb..#Blocks') IS NOT NULL
DROP TABLE #Blocks
SELECT spr.spid
,spr.blocked
,REPLACE (REPLACE (st.TEXT, CHAR(10), ' '), CHAR (13), ' ' ) AS batch
@Otterpohl
Otterpohl / Get-AgentJobRunTime.sql
Last active May 19, 2022 08:50
Gets the Agent Job Run duration without silly date and time
SELECT run_duration
,msdb.dbo.agent_datetime(run_date, run_time) AS datetime
FROM msdb.dbo.sysjobhistory
WHERE step_name = 'Enter Job Step Name Here'
ORDER BY msdb.dbo.agent_datetime(run_date, run_time) ASC;
@Otterpohl
Otterpohl / Get-AgentJobFailedText.sql
Last active March 10, 2023 18:56
Fetches the full failed text from an Agent Job
SELECT CAST(RIGHT(JH.run_date, 2) AS CHAR(2)) + '/' + CAST(SUBSTRING(CAST(JH.run_date AS CHAR(8)), 5, 2) AS CHAR(2)) + '/' + CAST(LEFT(JH.run_date, 4) AS CHAR(4)) AS date_run
,LEFT(RIGHT('0' + CAST(JH.run_time AS VARCHAR(6)), 6), 2) + ':' + SUBSTRING(RIGHT('0' + CAST(JH.run_time AS VARCHAR(6)), 6), 3, 2) + ':'
+ LEFT(RIGHT('0' + CAST(JH.run_time AS VARCHAR(6)), 6), 2) AS time_run
,JS.step_name
,JH.run_duration
,CASE
WHEN JSL.log IS NULL THEN JH.message
ELSE JSL.log
END AS log_output
FROM msdb.dbo.sysjobsteps AS JS
@Otterpohl
Otterpohl / ConvertFrom-DeadlockXEL.sql
Last active May 13, 2022 13:44
Query to Parse Deadlock Extended Event Data
IF(OBJECT_ID('tempdb..#Tempxel') IS NOT NULL)
BEGIN
Drop Table #Tempxel
END
CREATE TABLE #Tempxel(XEL_XML XML)
IF(OBJECT_ID('tempdb..#Tempxml') IS NOT NULL)
BEGIN
DROP TABLE #Tempxml
END