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


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

Класс событий Lock:Timeout указывает на то, что запрос на захват некоторого ресурса, например страницы, превысил время ожидания, поскольку данный ресурс был захвачен в блокирующем режиме другой транзакцией. Время ожидания определяется системной функцией @@LOCK_TIMEOUT и может быть задано инструкцией SET LOCK_TIMEOUT.

Класс событий Lock:Timeout используется для мониторинга выполнения условия истечения времени ожидания. Эти сведения полезны для определения влияния времени ожидания на производительность приложения, а также состава задействованных объектов. Можно просмотреть код приложения, изменяющий эти объекты, и определить возможные изменения для минимизации времени ожидания.

События Lock:Timeout с длительностью 0 обычно являются результатом внутренних блокировок зондов и не обязательно указывают на проблему. Можно использовать событие Lock:Timeout (timeout > 0) для отсечения времени ожидания, равного 0.

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

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

ApplicationName

nvarchar

Имя клиентского приложения, установившего данное соединение с экземпляром SQL Server. Этот столбец заполняется значениями, передаваемыми приложением, а не отображаемым именем программы.

10

Да

BinaryData

image

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

2

Да

ClientProcessID

int

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

9

Да

DatabaseID

int

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

3

Да

DatabaseName

nvarchar

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

35

Да

Duration

bigint

Промежуток времени в микросекундах между моментом запроса на блокировку и истечением времени блокировки.

13

Да

EndTime

datetime

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

15

Да

EventClass

int

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

27

Нет

EventSequence

int

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

51

Нет

HostName

nvarchar

Имя компьютера, на котором выполняется клиентская программа. Этот столбец данных заполняется в том случае, если клиент предоставляет имя узла. Для определения имени узла используйте функцию HOST_NAME.

8

Да

IntegerData2

int

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

55

Да

IsSystem

int

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

60

Да

LoginName

nvarchar

Имя входа пользователя (либо защищенное имя входа SQL Server, либо учетные данные входа Microsoft Windows в формате домен\имя_пользователя).

11

Да

LoginSid

image

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

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

Да

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

Нет

SessionLoginName

nvarchar

Имя входа пользователя, создавшего этот сеанс. Например, при подключении к SQL Server с использованием имени Имя_входа1 и выполнении инструкции под именем Имя_входа2 в столбце SessionLoginName выводится значение Имя_входа1, а в столбце LoginName — значение Имя_входа2. В этом столбце отображаются как имена входа SQL Server, так и имена входа 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

Да

См. также

Справочник

Класс событий Lock:Timeout (timeout > 0)

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

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

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

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

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

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