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


sys.syslockinfo (Transact-SQL)

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

Важное примечаниеВажно!

Эта системная таблица SQL Server 2000 включена в СУБД как представление для обеспечения обратной совместимости. Вместо нее рекомендуется использовать системные представления SQL Server. Сведения о том, как найти эквивалентное представление, см. в разделе Сопоставление системных таблиц SQL Server 2000 и системных представлений SQL Server 2005. В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется.

Важное примечаниеВажно!

Данная функция изменилась по сравнению с более ранними версиями SQL Server. Дополнительные сведения см. в разделе Критические изменения в функциях компонента Database Engine в SQL Server 2008 R2.

Имя столбца

Тип данных

Описание

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 = Приложение.

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 = RangeIX_S. Блокировка преобразования ключевого диапазона, созданная пересечением блокировок RangeI_N и RangeS_S.

20 = RangeIX_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 Database Engine, который запрашивает блокировку.

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 на сервере.