You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
set @StringToExecute ='CREATE SYNONYM DeadLockTbl FOR '+ @OutputDatabaseName +'.'+ @OutputSchemaName +'.'+ @OutputTableName;
286
+
exec sp_executesql @StringToExecute
287
+
288
+
END
289
+
END
290
+
184
291
185
292
CREATETABLE #t (id INTNOTNULL);
186
293
@@ -1036,7 +1143,9 @@ You need to use an Azure storage account, and the path has to look like this: ht
1036
1143
--CREATE CLUSTERED INDEX cx_whatever ON #deadlock_process (event_date, id);
1037
1144
--CREATE CLUSTERED INDEX cx_whatever ON #deadlock_resource_parallel (event_date, owner_id);
1038
1145
--CREATE CLUSTERED INDEX cx_whatever ON #deadlock_owner_waiter (event_date, owner_id, waiter_id);
1039
-
1146
+
IF(@OutputDatabaseCheck =0)
1147
+
BEGIN
1148
+
1040
1149
SET @d =CONVERT(VARCHAR(40), GETDATE(), 109);
1041
1150
RAISERROR('Results 1 %s', 0, 1, @d) WITHNOWAIT;
1042
1151
WITH deadlocks
@@ -1141,7 +1250,44 @@ You need to use an Azure storage account, and the path has to look like this: ht
1141
1250
CROSSAPPLY (SELECTTOP1*FROM #deadlock_resource_parallel AS drp WHEREdrp.owner_id=dp.idANDdrp.wait_type='e_waitPipeGetRow'ORDER BYdrp.event_date) AS caw
1142
1251
WHEREdp.victim_idISNULL
1143
1252
ANDdp.login_nameISNOTNULL)
1144
-
SELECTd.deadlock_type,
1253
+
insertinto DeadLockTbl (
1254
+
ServerName,
1255
+
deadlock_type,
1256
+
event_date,
1257
+
database_name,
1258
+
deadlock_group,
1259
+
query,
1260
+
object_names,
1261
+
isolation_level,
1262
+
owner_mode,
1263
+
waiter_mode,
1264
+
transaction_count,
1265
+
login_name,
1266
+
host_name,
1267
+
client_app,
1268
+
wait_time,
1269
+
priority,
1270
+
log_used,
1271
+
last_tran_started,
1272
+
last_batch_started,
1273
+
last_batch_completed,
1274
+
transaction_name,
1275
+
owner_waiter_type,
1276
+
owner_activity,
1277
+
owner_waiter_activity,
1278
+
owner_merging,
1279
+
owner_spilling,
1280
+
owner_waiting_to_close,
1281
+
waiter_waiter_type,
1282
+
waiter_owner_activity,
1283
+
waiter_waiter_activity,
1284
+
waiter_merging,
1285
+
waiter_spilling,
1286
+
waiter_waiting_to_close,
1287
+
deadlock_graph
1288
+
)
1289
+
SELECT @ServerName,
1290
+
d.deadlock_type,
1145
1291
d.event_date,
1146
1292
DB_NAME(d.database_id) ASdatabase_name,
1147
1293
'Deadlock #'
@@ -1192,17 +1338,192 @@ You need to use an Azure storage account, and the path has to look like this: ht
1192
1338
AND (d.login_name= @LoginName OR @LoginName ISNULL)
1193
1339
ORDER BYd.event_date, is_victim DESC
1194
1340
OPTION ( RECOMPILE );
1341
+
1342
+
dropSYNONYM DeadLockTbl; --done insert into blitzlock table going to insert into findings table first create synonym.
1195
1343
1344
+
-- RAISERROR('att deadlock findings', 0, 1) WITH NOWAIT;
FOR XMLPATH(N''), TYPE ).value(N'.[1]', N'NVARCHAR(4000)'),
1382
+
1, 1, N'')) AS object_names,
1383
+
dp.wait_time,
1384
+
dp.transaction_name,
1385
+
dp.last_tran_started,
1386
+
dp.last_batch_started,
1387
+
dp.last_batch_completed,
1388
+
dp.lock_mode,
1389
+
dp.transaction_count,
1390
+
dp.client_app,
1391
+
dp.host_name,
1392
+
dp.login_name,
1393
+
dp.isolation_level,
1394
+
dp.process_xml.value('(//process/inputbuf/text())[1]', 'NVARCHAR(MAX)') AS inputbuf,
1395
+
ROW_NUMBER() OVER ( PARTITIONBYdp.event_date, dp.idORDER BYdp.event_date ) AS dn,
1396
+
DENSE_RANK() OVER ( ORDER BYdp.event_date ) AS en,
1397
+
ROW_NUMBER() OVER ( PARTITIONBYdp.event_dateORDER BYdp.event_date ) -1AS qn,
1398
+
dp.is_victim,
1399
+
ISNULL(dp.owner_mode, '-') AS owner_mode,
1400
+
NULLAS owner_waiter_type,
1401
+
NULLAS owner_activity,
1402
+
NULLAS owner_waiter_activity,
1403
+
NULLAS owner_merging,
1404
+
NULLAS owner_spilling,
1405
+
NULLAS owner_waiting_to_close,
1406
+
ISNULL(dp.waiter_mode, '-') AS waiter_mode,
1407
+
NULLAS waiter_waiter_type,
1408
+
NULLAS waiter_owner_activity,
1409
+
NULLAS waiter_waiter_activity,
1410
+
NULLAS waiter_merging,
1411
+
NULLAS waiter_spilling,
1412
+
NULLAS waiter_waiting_to_close,
1413
+
dp.deadlock_graph
1414
+
FROM #deadlock_process AS dp
1415
+
WHEREdp.victim_idISNOTNULL
1416
+
1417
+
UNION ALL
1418
+
1419
+
SELECTN'Parallel Deadlock'AS deadlock_type,
1420
+
dp.event_date,
1421
+
dp.id,
1422
+
dp.victim_id,
1423
+
dp.database_id,
1424
+
dp.priority,
1425
+
dp.log_used,
1426
+
dp.wait_resourceCOLLATE DATABASE_DEFAULT,
1427
+
CONVERT(XML, N'parallel_deadlock'COLLATE DATABASE_DEFAULT) AS object_names,
1428
+
dp.wait_time,
1429
+
dp.transaction_name,
1430
+
dp.last_tran_started,
1431
+
dp.last_batch_started,
1432
+
dp.last_batch_completed,
1433
+
dp.lock_mode,
1434
+
dp.transaction_count,
1435
+
dp.client_app,
1436
+
dp.host_name,
1437
+
dp.login_name,
1438
+
dp.isolation_level,
1439
+
dp.process_xml.value('(//process/inputbuf/text())[1]', 'NVARCHAR(MAX)') AS inputbuf,
1440
+
ROW_NUMBER() OVER ( PARTITIONBYdp.event_date, dp.idORDER BYdp.event_date ) AS dn,
1441
+
DENSE_RANK() OVER ( ORDER BYdp.event_date ) AS en,
1442
+
ROW_NUMBER() OVER ( PARTITIONBYdp.event_dateORDER BYdp.event_date ) -1AS qn,
1443
+
NULLAS is_victim,
1444
+
cao.wait_typeCOLLATE DATABASE_DEFAULT AS owner_mode,
1445
+
cao.waiter_typeAS owner_waiter_type,
1446
+
cao.owner_activityAS owner_activity,
1447
+
cao.waiter_activityAS owner_waiter_activity,
1448
+
cao.mergingAS owner_merging,
1449
+
cao.spillingAS owner_spilling,
1450
+
cao.waiting_to_closeAS owner_waiting_to_close,
1451
+
caw.wait_typeCOLLATE DATABASE_DEFAULT AS waiter_mode,
1452
+
caw.waiter_typeAS waiter_waiter_type,
1453
+
caw.owner_activityAS waiter_owner_activity,
1454
+
caw.waiter_activityAS waiter_waiter_activity,
1455
+
caw.mergingAS waiter_merging,
1456
+
caw.spillingAS waiter_spilling,
1457
+
caw.waiting_to_closeAS waiter_waiting_to_close,
1458
+
dp.deadlock_graph
1459
+
FROM #deadlock_process AS dp
1460
+
CROSSAPPLY (SELECTTOP1*FROM #deadlock_resource_parallel AS drp WHEREdrp.owner_id=dp.idANDdrp.wait_type='e_waitPipeNewRow'ORDER BYdrp.event_date) AS cao
1461
+
CROSSAPPLY (SELECTTOP1*FROM #deadlock_resource_parallel AS drp WHEREdrp.owner_id=dp.idANDdrp.wait_type='e_waitPipeGetRow'ORDER BYdrp.event_date) AS caw
1462
+
WHEREdp.victim_idISNULL
1463
+
ANDdp.login_nameISNOTNULL)
1464
+
SELECTd.deadlock_type,
1465
+
d.event_date,
1466
+
DB_NAME(d.database_id) ASdatabase_name,
1467
+
'Deadlock #'
1468
+
+CONVERT(NVARCHAR(10), d.en)
1469
+
+', Query #'
1470
+
+CASEWHENd.qn=0THENN'1'ELSECONVERT(NVARCHAR(10), d.qn) END
1471
+
+CASEWHENd.is_victim=1THEN' - VICTIM'ELSE''END
1472
+
AS deadlock_group,
1473
+
CONVERT(XML, N'<inputbuf><![CDATA['+d.inputbuf+N']]></inputbuf>') AS query,
1474
+
d.object_names,
1475
+
d.isolation_level,
1476
+
d.owner_mode,
1477
+
d.waiter_mode,
1478
+
d.transaction_count,
1479
+
d.login_name,
1480
+
d.host_name,
1481
+
d.client_app,
1482
+
d.wait_time,
1483
+
d.priority,
1484
+
d.log_used,
1485
+
d.last_tran_started,
1486
+
d.last_batch_started,
1487
+
d.last_batch_completed,
1488
+
d.transaction_name,
1489
+
/*These columns will be NULL for regular (non-parallel) deadlocks*/
0 commit comments