Поделиться через


Класс событий Lock:Deadlock

Класс событий Lock:Deadlock создается при попытке получить блокировку, так как попытка была частью взаимоблокировки и была выбрана в качестве жертвы взаимоблокировки.

Используйте класс событий Lock:Deadlock для отслеживания, когда взаимоблокировки происходят, и какие объекты задействованы. Эту информацию можно использовать, чтобы определить, значительно ли влияют взаимоблокировки на производительность вашего приложения. Затем можно проверить код приложения, чтобы определить, можно ли вносить изменения, чтобы свести к минимуму взаимоблокировки.

Столбцы данных класса событий Lock:Deadlock

Имя столбца данных Тип данных Описание Идентификатор столбца Доступно для фильтрации
ИмяПриложения nvarchar Имя клиентского приложения, создавшего подключение к экземпляру SQL Server. Этот столбец заполняется значениями, передаваемыми приложением, а не отображаемым именем программы. 10 Да
BinaryData image Блокировка идентификатора ресурса. 2 Да
ClientProcessID int Идентификатор, присвоенный главным компьютером сервера процессу, в котором работает клиентское приложение. Этот столбец данных заполняется в том случае, если клиент вводит идентификатор клиентского процесса. 9 Да
Идентификатор базы данных int Идентификатор базы данных, в которой была приобретена блокировка. Sql Server Profiler отображает имя базы данных, если столбец данных ServerName фиксируется в трассировке и сервер доступен. Определите значение для базы данных, используя функцию DB_ID. 3 Да
ИмяБазыДанных nvarchar Имя базы данных, в которой была установлена блокировка. 35 Да
Продолжительность bigint Промежуток времени (в микросекундах) между моментом выдачи запроса на блокировку и моментом взаимоблокировки. 13 (тринадцать) Да
Время завершения datetime Время окончания взаимоблокировки. 15 Да
EventClass int Тип события = 25. двадцать семь нет
Последовательность событий int Последовательность заданного события в запросе. 51 нет
Идентификатор группы int Идентификатор группы рабочей нагрузки, в которой запускается событие трассировки SQL. 66 Да
Имя хоста nvarchar Имя компьютера, на котором выполняется клиентская программа. Этот столбец данных заполняется, если клиент предоставляет имя узла. Чтобы определить имя узла, используйте функцию HOST_NAME. 8 Да
ЦелочисленныеДанные int Номер взаимоблокировки. Числа назначаются с 0 при запуске сервера и увеличиваются при каждой взаимоблокировке. двадцать пять Да
IntegerData2 int Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. 55 Да
IsSystem int Указывает, произошло событие в системном или в пользовательском процессе. 1 = системный, 0 = пользовательский. шестьдесят Да
Имя пользователя для входа nvarchar Имя имени входа пользователя (имя для входа в систему безопасности SQL Server или учетные данные входа Microsoft Windows в формате DOMAIN\username). 11 Да
ЛогинСид image Идентификатор безопасности вошедшего в систему пользователя. Эти сведения можно найти в представлении каталога sys.server_principals. Значение идентификатора безопасности уникально для каждого имени входа на сервере. 41 Да
Режим int Результирующий режим после взаимоблокировки.

0=NULL — совместим с всеми другими режимами блокировки (LCK_M_NL)

1=Блокировка стабильности схемы (LCK_M_SCH_S)

2=блокировка изменения схемы (LCK_M_SCH_M)

3=Общая блокировка (LCK_M_S)

4=Обновить блокировку (LCK_M_U)

5=Монопольная блокировка (LCK_M_X)

6=Общая блокировка намерения (LCK_M_IS)

7=Блокировка обновления намерений (LCK_M_IU)

8=Эксклюзивная блокировка намерения (LCK_M_IX)

9=Общий доступ с намерением обновить (LCK_M_SIU)

10=Доступ совместный с намерением исключительного (LCK_M_SIX)

11=Обновление с намерением эксклюзивным (LCK_M_UIX)

12=Блокировка массового обновления (LCK_M_BU)

13=Общий/Общий диапазон ключей (LCK_M_RS_S)

14=Диапазон ключей общий доступ/Обновление (LCK_M_RS_U)

15=Вставка NULL в диапазон ключей (LCK_M_RI_NL)

16=Вставить общий диапазон ключей (LCK_M_RI_S)

17=Обновление диапазона вставки ключей (LCK_M_RI_U)

18=Эксклюзивная вставка диапазона ключей (LCK_M_RI_X)

19=Эксклюзивный общий диапазон ключей (LCK_M_RX_S)

20=Эксклюзивное обновление ключевого диапазона (LCK_M_RX_U)

21=Эксклюзивный диапазон ключей (LCK_M_RX_X)
32 Да
Имя домена NT nvarchar Домен Windows, к которому принадлежит пользователь. 7 Да
NTИмяПользователя nvarchar Имя пользователя Windows. 6 Да
ИдентификаторОбъекта int Идентификатор объекта в споре, если он доступен и применим. двадцать два Да
ObjectID2 bigint Идентификатор связанного объекта или сущности, если он доступен и применим. 56 Да
Идентификатор владельца int 1=ТРАНЗАКЦИЯ

2=КУРСОР

3=СЕССИЯ

4=SHARED_TRANSACTION_WORKSPACE

5=ЭКСКЛЮЗИВНОЕ_ТРАНЗАКЦИОННОЕ_РАБОЧЕЕ_ПРОСТРАНСТВО
58 Да
RequestID int Идентификатор запроса, содержащего заявление. 49 Да
Имя сервера nvarchar Имя отслеживаемого экземпляра SQL Server. 26 нет
SessionLoginName nvarchar Имя входа пользователя, создавшего этот сеанс. Например, если вы подключаетесь к SQL Server с помощью Login1 и выполняете инструкцию login2, SessionLoginName показывает Login1 и LoginName показывает Login2. В этом столбце отображаются имена входа SQL Server и Windows. 64 Да
СПИД int Идентификатор сеанса, в котором произошло событие. 12 Да
Время начала datetime Время начала события, если оно доступно. 14 Да
Текстовые данные ntext Текстовое значение зависит от типа блокировки, который приобретался. 1 Да
TransactionID bigint Назначенный системой идентификатор транзакции. 4 Да
Тип int 1=NULL_RESOURCE

2=БАЗА ДАННЫХ

3=ФАЙЛ

5=ОБЪЕКТ

6=СТРАНИЦА

7=КЛЮЧ

8=объем

9=RID

10=ПРИЛОЖЕНИЕ

11=МЕТАДАННЫЕ

12=AUTONAMEDB

13=HOBT

14=ЕДИНИЦА_РАСПРЕДЕЛЕНИЯ
57 Да

См. также

sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL)