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


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

Класс событий Lock:Deadlock Chain создается для каждого элемента взаимоблокировки.

Используйте класс событий Lock:Deadlock Chain для регистрации условий возникновения взаимоблокировок. Эти сведения помогают определить, насколько сильно взаимоблокировки влияют на быстродействие приложения и какие объекты при этом задействованы. Чтобы определить, можно ли свести к минимуму вероятность взаимоблокировок, проанализируйте в своем приложении код, изменяющий эти объекты.

Столбцы класса событий Lock:Deadlock Chain

Имя столбца данных Тип данных Описание Идентификатор столбца Фильтрация

BinaryData

image

Идентификатор блокируемого ресурса.

2

Да

DatabaseID

int

Идентификатор базы данных, к которой относится ресурс. Приложение SQL Server Profiler отображает имя базы данных, если столбец данных ServerName был захвачен в трассировке и сервер доступен. Определить это значение для базы данных можно при помощи функции DB_ID.

3

Да

DatabaseName

nvarchar

Имя базы данных, к которой относится ресурс.

35

Да

EventClass

int

Тип события = 59.

27

Нет

EventSequence

int

Порядковый номер данного события в запросе.

51

Нет

EventSubClass

int

Тип подкласса события.

101 = блокировка типа ресурса

102 = обмен типа ресурса

21

Да

IntegerData

int

Номер взаимоблокировки. Отсчет номеров, назначаемых взаимоблокировкам, начинается с нуля при запуске сервера; каждая новая взаимоблокировка получает больший на единицу номер.

25

Да

IntegerData2

int

Зарезервировано для использования в будущем.

55

Да

IsSystem

int

Указывает, произошло событие в системном или в пользовательском процессе: 1 = системный, 0 = пользовательский.

60

Да

LoginSid

image

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

41

Да

Mode

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

Да

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

Нет

SessionLoginName

nvarchar

Имя входа пользователя, создавшего этот сеанс. Например подключение к SQL Server по имени Имя_входа1 и выполненеи инструкции под именем Имя_входа2 SessionLoginName содержит значение «Имя_входа1», а LoginName содержит значение «Имя_входа2». В этом столбце отображаются имена входа и SQL Server, и Microsoft Windows.

64

Да

SPID

int

Идентификатор сеанса, в котором произошло событие.

12

Да

StartTime

datetime

Время начала события, если оно известно.

14

Да

TextData

ntext

Текстовое значение, зависящее от типа ресурса.

1

Да

TransactionID

bigint

Назначенный системой идентификатор транзакции.

4

Да

Type

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

Да

См. также

Основные понятия

Блокировка в компоненте Database Engine
Совместимость блокировок (компонент Database Engine)

Другие ресурсы

Мониторинг событий
sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks

Справка и поддержка

Получение помощи по SQL Server 2005