Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Игорь_UUS Member Откуда: г. Екатеринбург Сообщений: 680 |
Добрый день. Работает пользователей примерно 50 в одной локальной сети. Иногда 1 раз а час-два у кого-ни-будь возникает ошибка: Error: SCH_EV1_FixMessage, 1205, Транзакция (идентификатор процесса 55) вызвала взаимоблокировку ресурсов блокировка | буфер связи с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно. При вызове хранимки, в начале вызывается BEGIN TRANSACTION, затем множество различных операций в виде вызова хранимых процедур и COMMIT TRANSACTION. Да, воспроизводиться, так сказать, в последних обновлениях, действительно SCH_EV1_FixMessage новая хранимка... но не могу понять, что за взаимоблокировка... посоветуйте на что стоит обратить внимание? |
7 окт 19, 11:53 [21988046] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
граф отловите и сюда выложьте |
7 окт 19, 12:22 [21988081] Ответить | Цитировать Сообщить модератору |
Игорь_UUS Member Откуда: г. Екатеринбург Сообщений: 680 |
"граф отловите" - это как отловить, не совсем понял... |
||
7 окт 19, 12:45 [21988110] Ответить | Цитировать Сообщить модератору |
uaggster Member Откуда: Сообщений: 960 |
https://www.mssqltips.com/sqlservertip/5658/capturing-sql-server-deadlocks-using-extended-events/ |
||||
7 окт 19, 12:50 [21988118] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5516 |
Игорь_UUS, если default trace включен, то попробуйте запросом : SELECT dateadd(hh ,datediff(hh,getutcdate(),getdate()) ,convert(datetime,CONVERT(xml, f.event_data).value('(event[@name="xml_deadlock_report"]/@timestamp)[1]','datetime')) ) as [dt] ,CONVERT(xml, event_data).query('/event/data/value/child::*') [Deadlock] FROM sys.traces t cross apply sys.fn_xe_file_target_read_file(reverse(stuff(reverse(t.[path]),1,CHARINDEX('\',reverse(t.[path]),1)-1,''))+'system_health*.xel', null, null, null) f WHERE f.object_name = 'xml_deadlock_report' order by 1 desc |
7 окт 19, 13:24 [21988171] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||
7 окт 19, 13:24 [21988172] Ответить | Цитировать Сообщить модератору |
Игорь_UUS Member Откуда: г. Екатеринбург Сообщений: 680 |
Что-то получил... несколько записей... на что там обратить внимание, как правильно читать? |
||
7 окт 19, 14:35 [21988307] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
вываливайте весь xml под спойлер |
||
7 окт 19, 14:56 [21988348] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5516 |
где-то потерялся t.id=1 вот верный вариант: SELECT dateadd(hh ,datediff(hh,getutcdate(),getdate()) ,convert(datetime,CONVERT(xml, f.event_data).value('(event[@name="xml_deadlock_report"]/@timestamp)[1]','datetime')) ) as [dt] ,CONVERT(xml, event_data).query('/event/data/value/child::*') [Deadlock] FROM sys.traces t cross apply sys.fn_xe_file_target_read_file(reverse(stuff(reverse(t.[path]),1,CHARINDEX('\',reverse(t.[path]),1)-1,''))+'system_health*.xel', null, null, null) f WHERE f.object_name = 'xml_deadlock_report' and t.id=1 order by 1 desc[/quot] |
7 окт 19, 15:19 [21988384] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |