Показать сообщение отдельно
Старый 11.02.2021, 14:31   #17  
kgksoft is offline
kgksoft
Участник
 
37 / 107 (4) +++++
Регистрация: 24.12.2003
Цитата:
Сообщение от trud Посмотреть сообщение
В стандарте это точно надо включать. А можете запустить sp_BlitzLock для базы? она покажет как раз все деадлоки с момента последнего рестарта сервера, интерестно, будут ли там таблицы с Batch..
Запустил. Интересная процедура. 42 минуты работала. Дедлоки есть по Batch, но это не про то и их мало

X++:
(@P1 int,@P2 datetime2,@P3 datetime2,@P4 int,@P5 int,@P6 int,@P7 int)
UPDATE BATCH SET STATUS=@P1,ENDDATETIME=@P2,MODIFIEDDATETIME=@P3,RECVERSION=@P4,ENDDATETIMETZID=@P5 
WHERE (STATUS=@P6) AND NOT (EXISTS (SELECT 'x' FROM SYSCLIENTSESSIONS T2 WITH ( READCOMMITTEDLOCK) 
WHERE (((BATCH.SESSIONIDX=T2.SESSIONID) AND (BATCH.SESSIONLOGINDATETIME=T2.LOGINDATETIME)) AND (T2.STATUS!=@P7))))
и

X++:
(@P1 int,@P2 datetime2,@P3 int,@P4 datetime2,@P5 bigint,@P6 int)
UPDATE BATCH SET STATUS=@P1,ENDDATETIME=@P2,RECVERSION=@P3,MODIFIEDDATETIME=@P4 
WHERE ((RECID=@P5) AND (RECVERSION=@P6))
скорее всего это коды из serverCleanUpDeadTasks и serverFinishTask. Т.е. задание завершилось и клиентской сессии уже нет и тут раз в 5 минут неудачно запустилась serverCleanUpDeadTasks .

Еще нашел дедлок по BATCHHISTORY. Но это тогда когда вставка еще долго могла выполнятся и пересечение с удалением из этой же таблицы. Удаления в BatchRun нет. Это удаление скорее всего из модуля WHS прилетело.