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. |
Имя столбца |
Тип данных |
Описание |
---|---|---|
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 |
Идентификатор сеанса внутреннего процесса компонента MicrosoftSQL 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 на сервере.