Browse Source

Merge pull request #308 from kenjmartinii/patch-1

Fixed blocked_pageid output for SQL 2022
Pam Lahoud 10 months ago
parent
commit
cdd883d77e
1 changed files with 4 additions and 1 deletions
  1. 4 1
      usp_WhatsUp/usp_whatsup.sql

+ 4 - 1
usp_WhatsUp/usp_whatsup.sql

@@ -485,7 +485,10 @@ BEGIN
 		SELECT waiting_task_address, session_id, exec_context_id, wait_duration_ms, 
 		SELECT waiting_task_address, session_id, exec_context_id, wait_duration_ms, 
 			wait_type, resource_address, blocking_task_address, blocking_session_id, 
 			wait_type, resource_address, blocking_task_address, blocking_session_id, 
 			blocking_exec_context_id, resource_description,
 			blocking_exec_context_id, resource_description,
-			CASE WHEN [wait_type] LIKE 'PAGE%' AND [resource_description] LIKE '%:%' THEN CAST(RIGHT([resource_description], LEN([resource_description]) - CHARINDEX(':', [resource_description], LEN([resource_description])-CHARINDEX(':', REVERSE([resource_description])))) AS int)
+			CASE WHEN [wait_type] LIKE 'PAGE%' AND [resource_description] LIKE '%:%' THEN (CASE WHEN [resource_description] NOT LIKE '%[ ](%' 
+														THEN CAST (RIGHT([resource_description], LEN([resource_description]) - CHARINDEX(':', [resource_description], LEN([resource_description])-CHARINDEX(':', REVERSE([resource_description])))) AS INT)
+														ELSE CAST(RIGHT(replace([resource_description], SUBSTRING([resource_description], PATINDEX('%[ ](%', [resource_description]), LEN([resource_description])), ''), LEN(REPLACE([resource_description], SUBSTRING([resource_description], PATINDEX('%[ ](%', [resource_description]), LEN([resource_description])), '')) - CHARINDEX(':', REPLACE([resource_description], SUBSTRING([resource_description], PATINDEX('%[ ](%', [resource_description]), len([resource_description])), ''), LEN(REPLACE([resource_description], SUBSTRING([resource_description], PATINDEX('%[ ](%', [resource_description]), LEN([resource_description])), ''))-CHARINDEX(':', REVERSE(REPLACE([resource_description], SUBSTRING([resource_description], PATINDEX('%[ ](%', [resource_description]), LEN([resource_description])), ''))))) AS INT)
+													END)
 				WHEN [wait_type] LIKE 'LCK%' AND [resource_description] LIKE '%pageid%' AND ISNUMERIC(RIGHT(LEFT([resource_description],CHARINDEX('dbid=', [resource_description], CHARINDEX('pageid=', [resource_description])+6)-1),CHARINDEX('=',REVERSE(RTRIM(LEFT([resource_description],CHARINDEX('dbid=', [resource_description], CHARINDEX('pageid=', [resource_description])+6)-1)))))) = 1 THEN CAST(RIGHT(LEFT([resource_description],CHARINDEX('dbid=', [resource_description], CHARINDEX('pageid=', [resource_description])+6)-1),CHARINDEX('=',REVERSE(RTRIM(LEFT([resource_description],CHARINDEX('dbid=', [resource_description], CHARINDEX('pageid=', [resource_description])+6)-1))))) AS bigint)
 				WHEN [wait_type] LIKE 'LCK%' AND [resource_description] LIKE '%pageid%' AND ISNUMERIC(RIGHT(LEFT([resource_description],CHARINDEX('dbid=', [resource_description], CHARINDEX('pageid=', [resource_description])+6)-1),CHARINDEX('=',REVERSE(RTRIM(LEFT([resource_description],CHARINDEX('dbid=', [resource_description], CHARINDEX('pageid=', [resource_description])+6)-1)))))) = 1 THEN CAST(RIGHT(LEFT([resource_description],CHARINDEX('dbid=', [resource_description], CHARINDEX('pageid=', [resource_description])+6)-1),CHARINDEX('=',REVERSE(RTRIM(LEFT([resource_description],CHARINDEX('dbid=', [resource_description], CHARINDEX('pageid=', [resource_description])+6)-1))))) AS bigint)
 				ELSE NULL END AS pageid,
 				ELSE NULL END AS pageid,
 			CASE WHEN [wait_type] LIKE 'LCK%' AND [resource_description] LIKE '%associatedObjectId%' AND ISNUMERIC(RIGHT([resource_description],CHARINDEX('=', REVERSE([resource_description]))-1)) = 1 THEN CAST(RIGHT([resource_description],CHARINDEX('=', REVERSE([resource_description]))-1) AS bigint)
 			CASE WHEN [wait_type] LIKE 'LCK%' AND [resource_description] LIKE '%associatedObjectId%' AND ISNUMERIC(RIGHT([resource_description],CHARINDEX('=', REVERSE([resource_description]))-1)) = 1 THEN CAST(RIGHT([resource_description],CHARINDEX('=', REVERSE([resource_description]))-1) AS bigint)