Класс событий Lock:Deadlock
Область применения: SQL Server
События класса Lock:Deadlock создаются при отмене попытки получить блокировку, приводящую к взаимоблокировке и выбранную сервером в качестве жертвы.
Класс событий Lock:Deadlock предназначен для отслеживания возникновения взаимоблокировок и объектов, которые в них участвуют. Эти сведения предназначены для определения степени влияния взаимоблокировок на производительность приложения. Они позволяют просмотреть код приложения и изменить его так, чтобы минимизировать взаимоблокировки.
Столбцы данных класса событий Lock:Deadlock
Имя столбца данных | Тип данных | Description | Идентификатор столбца | Доступно для фильтрации |
---|---|---|---|---|
ApplicationName | nvarchar | Имя клиентского приложения, создавшего подключение к экземпляру SQL Server. Этот столбец заполняется значениями, передаваемыми приложением, а не отображаемым именем программы. | 10 | Да |
BinaryData | Изображение | Идентификатор ресурса блокировки. | 2 | Да |
ClientProcessID | int | Идентификатор, присвоенный главным компьютером сервера процессу, в котором работает клиентское приложение. Этот столбец данных заполняется в том случае, если клиент вводит идентификатор клиентского процесса. | 9 | Да |
DatabaseID | int | Идентификатор базы данных, в которой запрашивается блокировка. Sql Server Profiler отображает имя базы данных, если столбец данных ServerName фиксируется в трассировке и сервер доступен. Определите значение для базы данных, используя функцию DB_ID. | 3 | Да |
имя_базы_данных | nvarchar | Имя базы данных, в которой запрашивается блокировка. | 35 | Да |
Duration | bigint | Время (в микросекундах) с момента выдачи запроса на блокировку до момента возникновения взаимоблокировки. | 13 | Да |
EndTime | datetime | Время окончания взаимоблокировки. | 15 | Да |
EventClass | int | Тип события = 25. | 27 | No |
EventSequence | int | Порядковый номер данного события в запросе. | 51 | No |
GroupID | int | Идентификатор группы рабочей нагрузки, в которой запускается событие трассировки SQL. | 66 | Да |
HostName | nvarchar | Имя компьютера, на котором выполняется клиентская программа. Этот столбец данных заполняется, если клиент предоставляет имя узла. Чтобы определить имя узла, используйте функцию HOST_NAME. | 8 | Да |
IntegerData | int | Номер взаимоблокировки. Номера назначаются начиная от 0 с момента запуска сервера и для каждой взаимоблокировки увеличиваются на единицу. | 25 | Да |
IntegerData2 | int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. | 55 | Да |
IsSystem | int | Указывает, произошло событие в системном или в пользовательском процессе. 1 = системный, 0 = пользовательский. | 60 | Да |
LoginName | nvarchar | Имя имени входа пользователя (имя для входа в систему безопасности SQL Server или учетные данные входа Microsoft Windows в формате DOMAIN\username). | 11 | Да |
LoginSid | Изображение | Идентификатор безопасности вошедшего в систему пользователя. Эти сведения можно найти в представлении каталога sys.server_principals. Значение идентификатора безопасности уникально для каждого имени входа на сервере. | 41 | Да |
Режим | int | Результирующий режим после взаимоблокировки. 0=NULL — совместим с любыми другими режимами блокировки (LCK_M_NL) 1 = блокировка стабильности схемы (LCK_M_SCH_S) 2 = блокировка изменения схемы (LCK_M_SCH_S) 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 | Да |
NTDomainName | nvarchar | Домен Windows, к которому принадлежит пользователь. | 7 | Да |
NTUserName | nvarchar | Имя пользователя Windows. | 6 | Да |
ObjectID | int | Идентификатор объекта, из-за которого возникает конфликт, если он доступен и применим. | 22 | Да |
ObjectID2 | bigint | Идентификатор связанного объекта или сущности, если он доступен и применим. | 56 | Да |
OwnerID | int | 1 = TRANSACTION 2 = CURSOR 3 = SESSION 4 = SHARED_TRANSACTION_WORKSPACE 5 = EXCLUSIVE_TRANSACTION_WORKSPACE |
58 | Да |
RequestID | int | Идентификатор запроса, содержащего инструкцию. | 49 | Да |
ServerName | nvarchar | Имя отслеживаемого экземпляра SQL Server. | 26 | No |
SessionLoginName | nvarchar | Имя входа пользователя, создавшего этот сеанс. Например, если вы подключаетесь к SQL Server с помощью Login1 и выполняете инструкцию login2, SessionLoginName показывает Login1 и LoginName показывает Login2. В этом столбце отображаются имена входа SQL Server и Windows. | 64 | Да |
SPID | int | Идентификатор сеанса, в котором произошло событие. | 12 | Да |
Время начала | datetime | Время начала события, если оно доступно. | 14 | Да |
TextData | ntext | Текстовое значение, зависящее от типа запрашиваемой блокировки. | 1 | Да |
TransactionID | bigint | Назначенный системой идентификатор транзакции. | 4 | Да |
Тип | int | 1 = NULL_RESOURCE 2 = DATABASE 3 = FILE 5 = OBJECT 6 = PAGE 7 = KEY 8 = EXTENT 9 = RID 10 = APPLICATION 11 = METADATA 12 = AUTONAMEDB 13 = HOBT 14 = ALLOCATION_UNIT |
57 | Да |
См. также
sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL)