Ошибка блокировки в хранилище данных Azure - PullRequest
0 голосов
/ 16 мая 2018

Я получаю эту ошибку при запросе / удалении некоторых строк из больших таблиц в Azure SQL-DW. [40001] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Transaction (Process ID 144) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (1205) (SQLExecDirectW)') Я почти уверен, что ни один другой процесс не читает ту же таблицу в то время (как недавно созданная мной тестовая таблица, поэтому другие потребители не могут)

Я хочу понять, какие процессы вызывают тупик. Есть ли способ получить тупиковый график и извлечь из него какой-то смысл?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Можете ли вы попробовать следующий фрагмент:

WITH CTE AS (SELECT CAST(event_data AS XML) AS [target_data_XML] FROM sys.fn_xe_telemetry_blob_target_read_file('dl', null, null, null))

SELECT [db_name], [wait_resource], [deadlock_xml] FROM (
    SELECT target_data_XML.query('/event/data[@name=''database_name'']/value').value('(/value)[1]', 'nvarchar(250)') AS [db_name],
    waitresource_node.value('@waitresource', 'nvarchar(250)') AS [wait_resource],
    deadlock_node.query('.') as [deadlock_xml]
    FROM CTE CROSS APPLY target_data_XML.nodes('(/event/data/value/deadlock)') AS T(deadlock_node)
    CROSS APPLY target_data_XML.nodes('(/event/data/value/deadlock/process-list/process)') AS U(waitresource_node)
) deadlock

WHERE [db_name] = '<YourDB>'
AND [wait_resource] = '<wait_resource>'
0 голосов
/ 16 мая 2018

KBR,

Я не могу дать вам полный ответ на основе предоставленной информации.Это может быть взаимная блокировка запроса.

Не стесняйтесь открыть Support Case с командой поддержки хранилища данных и можете решить эту проблему с вами.

...