Класс событий «Lock:Acquired»
Класс событий Lock:Acquired указывает, что была получена блокировка для ресурса, например страницы данных.
Классы событий Lock:Acquired и Lock:Released можно применять для отслеживания блокировок объектов, типов блокировок и длительности их действия. Следует исследовать причины длительных захватов, так как они могут приводить к конфликтным ситуациям. Например, приложение может получать блокировку строк в таблице и затем ожидать ввода пользователя. Поскольку ввод данных пользователем может занять много времени, блокировка может помешать работать другим пользователям. В данном случае приложение необходимо перестроить таким образом, чтобы запросы на блокировку выполнялись только при необходимости и оно не ожидало ввода данных пользователем после запроса на блокировку.
Столбцы данных класса событий Lock:Acquired
Имя столбца данных | Тип данных | Описание | Идентификатор столбца | Фильтрация |
---|---|---|---|---|
ApplicationName |
nvarchar |
Имя клиентского приложения, создавшего соединение с экземпляром Microsoft SQL Server. Этот столбец заполняется значениями, передаваемыми приложением, а не отображаемым именем программы. |
10 |
Да |
BigintData1 |
bigint |
Идентификатор секции, если блокируемый ресурс секционирован. |
52 |
Да |
BinaryData |
image |
Идентификатор блокируемого ресурса. |
2 |
Да |
ClientProcessID |
int |
Идентификатор, присвоенный сервером процессу, в котором работает клиентское приложение. Этот столбец данных заполняется в том случае, если клиент предоставляет идентификатор клиентского процесса. |
9 |
Да |
DatabaseID |
int |
Идентификатор базы данных, в которой была получена блокировка. SQL Server Profiler отображает имя базы данных, если столбец данных ServerName был захвачен в трассировке и сервер доступен. Определить значение для базы данных можно с помощью функции DB_ID. |
3 |
Да |
Duration |
bigint |
Длительность (в микросекундах) между выдачей запроса на блокировку и получением блокировки. |
13 |
Да |
EndTime |
datetime |
Время окончания события, если оно известно. |
15 |
Да |
EventClass |
int |
Тип события = 24. |
27 |
Нет |
EventSequence |
int |
Порядковый номер данного события в запросе. |
51 |
Нет |
HostName |
nvarchar |
Имя компьютера, на котором выполняется клиентская программа. Этот столбец данных заполняется, если клиент предоставляет имя узла. Чтобы определить имя узла, используйте функцию HOST_NAME. |
8 |
Да |
IntegerData2 |
int |
Зарезервировано для использования в будущем. |
55 |
Да |
IsSystem |
int |
Указывает, произошло ли событие в системном или в пользовательском процессе. 1 = системный, 0 = пользовательский. |
60 |
Да |
LoginName |
nvarchar |
Имя входа пользователя (либо имя входа безопасности SQL Server, либо учетные данные входа Windows в формате ДОМЕН\имя_пользователя). |
11 |
Да |
LoginSid |
image |
Идентификатор безопасности (SID) вошедшего в систему пользователя. Эти данные можно найти в таблице sys.sysusers базы данных 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 |
Да |
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 |
Текстовое значение зависит от типа полученной блокировки. Это то же значение, что и в столбце resource_description в системной таблице sys.dm_tran_locks. |
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