Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: SQL Server Управляемый экземпляр SQL Azure
Используйте SQL Server Profiler, чтобы определить причину взаимоблокировки. Взаимоблокировка возникает при наличии циклической зависимости между двумя или несколькими потоками или процессами для некоторых наборов ресурсов в SQL Server. С помощью SQL Server Profiler можно создать трассировку, которая записывает, воспроизводит и отображает события взаимоблокировки для анализа.
Для отслеживания событий взаимоблокировки добавьте класс событий Deadlock graph в трассировку. Этот класс событий заполняет столбец данных TextData в трассировке с данными XML о процессе и объектах, которые участвуют во взаимоблокировке. SQL Server Profiler может извлечь XML-документ в XML-файл взаимоблокировки (.xdl), который можно просмотреть позже в SQL Server Management Studio. Вы можете настроить SQL Server Profiler для извлечения событий графа Взаимоблокировки в один файл, содержащий все события графа Взаимоблокировки, или в отдельные файлы. Это извлечение можно выполнить одним из следующих способов.
Во время конфигурирования трассировки, используя вкладку Параметры извлечения событий. Эта вкладка не отображается до тех пор, пока вы не выберете событие граф взаимоблокировок на вкладке Выбор событий.
Используя опцию Извлечь события SQL Server в меню Файл.
Отдельные события можно также извлекать и сохранять, щелкнув правой кнопкой конкретное событие и выбрав Извлечь данные события.
Графы взаимоблокировки
SQL Server Profiler и SQL Server Management Studio используют граф ожидания взаимоблокировки, чтобы описать взаимоблокировку. Граф ожидания взаимоблокировки содержит узлы процессов, узлы ресурсов и ребра, представляющие связи между процессами и ресурсами. Компоненты графов ожидания определяются в следующей таблице:
| Узел | Описание |
|---|---|
| Технологический узел | Поток, выполняющий задачу; например, INSERT, UPDATE или DELETE. |
| Узел ресурсов | Объект базы данных, например таблица, индекс или строка. |
| Microsoft Edge | Связь между процессом и ресурсом. Грань request возникает, когда процесс ожидает ресурса. Угловой случай owner возникает, когда ресурс ожидает процесс. В описание ребра включен режим блокировки. Например, Режим: X. |
Узел процесса блокировки
В графе ожидания узел процесса содержит информацию о процессе. В следующей таблице поясняются компоненты процесса.
| Компонент | Определение |
|---|---|
| Идентификатор процесса сервера | Идентификатор сеанса (SPID), идентификатор, назначаемый сервером для процесса, который владеет блокировкой. |
| Идентификатор пакетного сервера | Идентификатор пакета сервера (SBID). |
| Идентификатор контекста выполнения | Идентификатор контекста выполнения (ECID). Идентификатор контекста выполнения заданного потока, связанного с определенным идентификатором сеанса. ECID = { 0, 1, 2, 3, ... n }, где 0 всегда представляет основной или родительский поток, а { 1, 2, 3, ... n } представляет подпотоки. |
| Приоритет блокировки | Приоритет взаимоблокировки для процесса. Дополнительные сведения о возможных значениях см. в разделе SET DEADLOCK_PRIORITY. |
| Используемый журнал | Объем пространства журнала, используемого для процесса. |
| Идентификатор владельца | Идентификатор транзакции для процессов, которые используют транзакции и в настоящее время ожидают блокировки. |
| Дескриптор транзакции | Указатель на дескриптор транзакции, описывающий состояние транзакции. |
| Входной буфер | Входной буфер текущего процесса определяет тип события и выполняемую инструкцию. Возможные значения включают: Язык RPC Не допускается |
| Заявление | Тип заявления. Возможны следующие значения: NOP ВЫБИРАТЬ ОБНОВЛЯТЬ ВСТАВКА УДАЛИТЬ Неизвестный |
Узел ресурса для предотвращения взаимоблокировки
Во взаимоблокировке участвуют два процесса, каждый их которых ожидает освобождения ресурса, удерживаемого другим процессом. В графе взаимоблокировки ресурсы отображаются как узлы ресурсов.