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


sys.syslockinfo (Transact-SQL)

Область применения: SQL Server

Содержит сведения обо всех удовлетворенных, преобразованных и ожидающих запросах на блокировку.

Внимание

Эта системная таблица SQL Server 2000 (8.x) включена в представление для обратной совместимости. Вместо этого используйте динамическое представление управления sys.dm_tran_locks .

В будущей версии Microsoft SQL Server этот компонент будет удален.

Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

Имя столбца Тип данных Description
rsc_text nchar(32) Текстовое описание ресурса блокировки. Содержит часть имени ресурса.
rsc_bin binary(16) Ресурс двоичной блокировки. Содержит реальный ресурс блокировки, который хранится в диспетчере блокировок. Этот столбец включен для средств, которые знают о формате ресурса блокировки для создания собственного отформатированного ресурса блокировки и для выполнения самосоединения в syslockinfo.
rsc_valblk binary(16) Массив значений блокировки. Некоторые типы ресурсов могут включать дополнительные данные в ресурсе блокировки, которые не хэшируются диспетчером блокировок для определения владельца конкретного ресурса блокировки. Например, блокировки страниц не принадлежат конкретному идентификатору объекта. Для укрупнения блокировки и в других целях. Однако идентификатор объекта блокировки страницы может быть включен в массив значений блокировки.
rsc_dbid smallint Идентификатор базы данных, ассоциированный с ресурсом.
rsc_indid smallint Идентификатор индекса, ассоциированный с ресурсом, если соответствует.
rsc_objid int Идентификатор объекта, ассоциированный с ресурсом, если соответствует.
rsc_type tinyint Тип ресурса:

1 = Ресурс NULL (не используется);

2 = база данных

3 = Файл;

4 = индекс;

5 = Таблица;

6 = Страница;

7 = Ключ;

8 = Экстент;

9 = RID (Идентификатор строки);

10 = Приложение.

11 = метаданные

12 = HOBT

13 = единица выделения

14 = OIB

15 = группа строк

16 = XACT
rsc_flag tinyint Внутренние флаги ресурса.
req_mode tinyint Режим запроса блокировки. Этот столбец является режимом блокировки запрашивающего и представляет собой режим предоставления или режим преобразования или ожидания.

0 = NULL. Нет доступа к ресурсу. Играет роль заполнителя.

1 = Sch-S (стабильности схемы). Заверяет, что элемент схемы, такой как таблица или индекс, не будет удален до тех пор, пока сеанс связи удерживает блокировку стабильности схемы на данный элемент схемы.

2 = Sch-S (изменения схемы). Должен поддерживаться любым сеансом связи, во время которого предполагается изменить схему данного ресурса. Заверяет, что другие сеансы не имеют ссылок на обозначенный объект.

3 = S (коллективная). Удерживающему сеансу предоставлен коллективный доступ к ресурсу.

4 = U (обновления). Указывает блокировку обновления, полученную на ресурсы, которые со временем могут быть обновлены. Используется для предотвращения распространенной формы взаимоблокировки, которая происходит, если несколько сеансов блокируют ресурсы для возможного обновления в будущем.

5 = X (монопольная). Удерживающему сеансу предоставлен исключительный доступ к ресурсу.

6 = IS (с намерением коллективного доступа). Указывает намерение поместить блокировки типа S на некоторые подчиненные ресурсы в иерархии блокировок.

7 = IU (с намерением обновления). Указывает намерение поместить блокировки типа U на некоторые подчиненные ресурсы в иерархии блокировок.

8 = IX (с намерением монопольного доступа). Указывает намерение поместить блокировки типа X на некоторые подчиненные ресурсы в иерархии блокировок.

9 = SIU (коллективная, с намерением обновления). Указывает коллективный доступ к ресурсу с намерением получения блокировок обновления на подчиненные ресурсы в иерархии блокировок.

10 = SIX (коллективная, с намерением монопольного доступа). Указывает коллективный доступ к ресурсу с намерением получения монопольных блокировок на подчиненные ресурсы в иерархии блокировок.

11 = UIX (обновления, с намерением монопольного доступа). Указывает блокировку обновления ресурса с намерением получения монопольных блокировок на подчиненные ресурсы в иерархии блокировок.

12 = BU. Используется для массовых операций.

13 = RangeS_S (общий ключевой диапазон и общая блокировка ресурса). Указывает на последовательный просмотр диапазона.

14 = RangeS_S (общий ключевой диапазон и блокировка ресурса для обновления). Указывает на последовательное сканирование обновления.

15 = RangeS_S (вставка ключевого диапазона и блокировка Null для ресурса). Используется для проверки диапазонов, перед тем как вставить новый ключ в индекс.

16 = RangeI_S. Блокировка преобразования ключевого диапазона, созданная перекрытием блокировок RangeI_N и S.

17 = RangeI_U. Блокировка преобразования ключевого диапазона, созданная перекрытием блокировок RangeI_N и U.

18 = RangeI_X. Блокировка преобразования ключевого диапазона, созданная перекрытием блокировок RangeI_N и X.

19 = RangeX_S. Блокировка преобразования ключевого диапазона, созданная перекрытием блокировок RangeI_N и RangeS_S.

20 = RangeX_U. Блокировка преобразования ключевого диапазона, созданная перекрытием блокировок RangeI_N и RangeS_U.

21 = RangeX_X (исключающий ключевой диапазон и исключающая блокировка ресурса). Блокировка диалога, используемая во время обновления ключа в диапазоне.
req_status tinyint Состояние запроса на блокировку:

1 = Принято;

2 = Преобразуется;

3 = Ожидание.
req_refcnt smallint Счетчик обращений к блокировке. Каждый раз, когда транзакция запрашивает блокировку определенного ресурса, счетчик обращений увеличивается. Блокировка не может быть снята до тех пор, пока счетчик обращений не будет равен 0.
req_cryrefcnt smallint Зарезервировано для использования в будущем. Всегда равен 0.
req_lifetime int Битовая карта времени действия блокировки. Во время определенных стратегий обработки запросов блокировка должна сохраняться на ресурсах до тех пор, пока обработчик запросов не завершит определенную фазу запроса. Битовая карта времени действия блокировки используется обработчиком запросов и диспетчером транзакций для указания групп блокировок, которые могут быть сняты по завершении выполнения определенной фазы запроса. Определенные биты в битовой карте используются для указания блокировок, которые будут поддерживаться до конца транзакции, даже если их счетчик обращений равен 0.
req_spid int Внутренний ядро СУБД Microsoft SQL Server идентификатор процесса сеанса, запрашивающего блокировку.
req_ecid int Идентификатор контекста выполнения (ECID). Используется для указания того, какой поток в параллельной операции владеет конкретной блокировкой.
req_ownertype smallint Тип объекта, ассоциированного с блокировкой:

1 = Транзакция;

2 = Курсор;

3 = Сеанс;

4 = Экс-сеанс.

Обратите внимание, что 3 и 4 представляют собой особые варианты блокировки сеанса, соответственно блокировки трассировки базы данных и файловых групп.
req_transactionID bigint Уникальный идентификатор транзакции, используемый в syslockinfo и в событии профилировщика
req_transactionUOW uniqueidentifier Определяет идентификатор единицы работы (UOW) транзакции DTC. Для транзакций, отличных от MS DTC, UOW равен 0.

Разрешения

необходимо разрешение VIEW SERVER STATE на сервере.

См. также

Сопоставление системных таблиц с системными представлениями (Transact-SQL)
Представления совместимости (Transact-SQL)