Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureAzure Synapse Analytics
Система платформы аналитики (PDW)
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Возвращает сведения о ресурсах диспетчера блокировки в настоящее время в SQL Server. Каждая строка представляет текущий активный запрос диспетчеру блокировок о блокировке, которая была получена или находится в ожидании получения.
Столбцы в результирующем наборе разделяются на две группы: ресурсы и запросы. Группа ресурсов описывает ресурсы, на которые был выполнен запрос блокировки, а группа запросов описывает запрос блокировки.
Замечание
Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_tran_locks. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
| Название столбца | Тип данных | Description |
|---|---|---|
resource_type |
nvarchar(60) | Представляет тип ресурса. Значение может быть следующим: DATABASEFILEOBJECTPAGEKEYEXTENTRID (Идентификатор ряда)APPLICATIONMETADATAHOBT (Куча или B-дерево)ALLOCATION_UNITXACT (Сделка)OIB (Онлайн-индекс)ROW_GROUP |
resource_subtype |
nvarchar(60) | Представляет подтип resource_type. Получение блокировки подтипа без хранения нетипизированной блокировки родительского типа технически допустимо. Разные подтипы не конфликтуют друг с другом или с нетипизированным родительским типом. Не у всех типов ресурсов имеются подтипы. |
resource_database_id |
int | Идентификатор базы данных, в рамках которой находится ресурс. Все ресурсы, обрабатываемые диспетчером блокировок, находятся в рамках идентификатора базы данных. |
resource_description |
nvarchar(256) | Описание ресурса, содержащее только те данные, которые недоступны из других столбцов источника. |
resource_associated_entity_id |
bigint | Идентификатор сущности в базе данных, с которой связан ресурс. Это может быть идентификатор объекта, HoBt идентификатор или идентификатор единицы распределения, в зависимости от типа ресурса. |
resource_lock_partition |
Int | Идентификатор секционирования блокировки для ресурса с секционированными блокировками. Значением для непартиментированных ресурсов блокировки является 0. |
request_mode |
nvarchar(60) | Режим запроса. Режимом для предоставленных запросов является режим предоставления, для запросов в ожидании — запрашиваемый режим. NULL = Блокировки нет. Играет роль заполнителя. Sch-S (Стабильность схемы) = Гарантирует, что элемент схемы, такой как таблица или индекс, не отпадает, пока любая сессия фиксирует стабильность схемы на элементе схемы.Sch-M (Модификация схемы) = Должна храниться любой сессией, которая хочет изменить схему указанного ресурса. Заверяет, что другие сеансы не имеют ссылок на обозначенный объект.S (Совместно) = Сессия удержания получает общий доступ к ресурсу.U (Обновление) = Указывает на блокировку обновления, полученную на ресурсах, которые могут быть в конечном итоге обновлены. Используется для предотвращения распространённой разновидности взаимоблокировки, которая возникает, когда несколько сеансов блокируют ресурсы с расчётом на их возможное обновление в дальнейшем.X (Эксклюзивно) = Сессия удержания получает эксклюзивный доступ к ресурсу.IS (Intent Shared Intent) = Указывает на намерение наложить S-блокировки на какой-либо подчинённый ресурс в иерархии замков.IU (Обновление намерения) = Указывает на намерение установить U-замки на некотором подчинённом ресурсе в иерархии замков.IX (Intent Exclusive) = Указывает на намерение наложить X замков на некоторый подчинённый ресурс в иерархии замков.SIU (Обновление общего намерения) = Обозначает общий доступ к ресурсу с целью получения блокировок обновления на подчинённых ресурсах в иерархии замков.SIX (Эксклюзив общего намерения) = Означает совместный доступ к ресурсу с целью получения эксклюзивных блокировок на подчинённые ресурсы в иерархии замков.UIX (Эксклюзивное намерение обновления) = Указывает на блокировку обновления на ресурс с целью получения эксклюзивных блокировок на подчинённые ресурсы в иерархии блокировок.BU = Используется для оптовых операций.RangeS_S (Общий Key-Range и блокировка совместного ресурса) = Указывает на сериализируемое сканирование дальности.RangeS_U (Общий Key-Range и блокировка обновления ресурса) = Указывает на сериализируемое сканирование обновлений.RangeI_N (Вставьте Key-Range и блокировку нулевого ресурса) = Используется для тестирования диапазонов перед вставкой нового ключа в индекс.RangeI_S = Key-Range Конверсионный замок, созданный перекрытием RangeI_N и S замков.RangeI_U = Key-Range Конверсионный замок, созданный путём перекрытия RangeI_N и U-замков.RangeI_X = Key-Range Конверсионный замок, созданный перекрытием RangeI_N и X замков.RangeX_S = Key-Range Блокировка преобразования, созданная перекрытием и RangeI_NRangeS_S. замки.RangeX_U = Key-Range Конверсионный замок, созданный перекрытием RangeI_N и RangeS_U замков.RangeX_X (Эксклюзивный Key-Range и Эксклюзивный ресурсный замок) = Это конвертирующий замок, используемый при обновлении ключа в диапазоне. |
request_type |
nvarchar(60) | Тип запроса. Значение равно LOCK. |
request_status |
nvarchar(60) | Текущее состояние запроса. Возможные значения: GRANTED или CONVERT, WAIT, LOW_PRIORITY_CONVERT, LOW_PRIORITY_WAIT или ABORT_BLOCKERS. Для получения дополнительной информации о низкоприоритетных ожиданиях и блокировщиках отмены см. раздел low_priority_lock_waitвALTER INDEX (Transact-SQL). |
request_reference_count |
smallint | Возвращает приблизительное количество случаев, когда этот ресурс был запрошен одним и тем же объектом. |
request_lifetime |
int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
request_session_id |
int |
session_id в настоящее время принадлежит этому запросу. Владение session_id может изменяться для распределенных и привязанных транзакций. Значение -2 указывает, что запрос принадлежит к потерянным распределенным транзакциям. Значение -3 указывает, что запрос принадлежит отложенной транзакции восстановления, например транзакции, для которой откат был отложен при восстановлении, так как откат не удалось завершить успешно. |
request_exec_context_id |
int | Идентификатор контекста выполнения процесса, которому в данный момент принадлежит запрос. |
request_request_id |
int |
request_id (пакетный идентификатор) процесса, которому в настоящее время принадлежит этот запрос. Это значение меняется каждый раз, когда активное соединение Multiple Active Result Set (MARS) для транзакции меняется. |
request_owner_type |
nvarchar(60) | Тип сущности, которой принадлежит запрос. Запрос диспетчера блокировок может принадлежать нескольким разным объектам. Возможны следующие значения:TRANSACTION = Запрос принадлежит транзакции.CURSOR = Запрос принадлежит курсору.SESSION = Запрос принадлежит пользовательской сессии.SHARED_TRANSACTION_WORKSPACE = Запрос принадлежит общей части рабочего пространства транзакций.EXCLUSIVE_TRANSACTION_WORKSPACE = Запрос принадлежит эксклюзивной части рабочего пространства транзакции.NOTIFICATION_OBJECT= Запрос принадлежит внутреннему компоненту SQL Server. Этот компонент попросил диспетчера блокировок уведомлять его в случае, если другой компонент ожидает получения блокировки. Функция FileTable — это компонент, который использует это значение.Примечание. Рабочие пространства используются внутренне для хранения блокировок для зачисленных сеансов. |
request_owner_id |
bigint | Идентификатор определенного владельца запроса. Если владельцем запроса является транзакция, это значение содержит идентификатор транзакции. Если FileTable является владельцем запроса, request_owner_id имеет одно из следующих значений:
|
request_owner_guid |
uniqueidentifier | Идентификатор GUID определенного владельца запроса. Это значение используется только распределенной транзакцией, для которой оно является идентификатором GUID координатора MS DTC. |
request_owner_lockspace_id |
nvarchar(32) | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. Это значение представляет идентификатор пространства блокировки запрашивающего объекта. Идентификатор заблокированного пространства определяет, совместимы ли друг с другом два запрашивающих объекта и можно ли им предоставить блокировки в режимах, которые в противном случае привели бы к конфликту. |
lock_owner_address |
varbinary(8) | Адрес внутренней структуры данных в памяти, используемый для отслеживания этого запроса. Этот столбец можно объединить с resource_address столбцом в sys.dm_os_waiting_tasks. |
pdw_node_id |
int | Идентификатор узла, на который находится это распределение. применимо к: Azure Synapse Analytics, система платформы аналитики (PDW) |
Permissions
На SQL Server и Управляемый экземпляр SQL sys.dm_tran_locks требуется VIEW SERVER STATE разрешение.
В базе данных SQL базовые, S0и S1 целей службы, а также для баз данных в эластичных пулах, требуется учетная запись администратора сервера сервера, учетная запись администратора Microsoft Entra или членство в роли сервера ##MS_ServerStateReader##. Для всех остальных целей службы базы данных SQL требуется разрешение VIEW DATABASE STATE на базу данных или членство в роли сервера ##MS_ServerStateReader##.
В SQL analytics endpoint и Warehouse in Microsoft Fabric членство в роли Viewer workspace — это минимальное разрешение, необходимое для просмотра sys.dm_tran_locks.
Разрешения для SQL Server 2022 и более поздних версий
В SQL Server 2022 и более поздних версиях sys.dm_tran_locks требуется VIEW SERVER PERFORMANCE STATE разрешение на сервере.
Замечания
Состояние предоставленного запроса показывает, что блокировка ресурса была предоставлена запрашивающему объекту. Ожидающий запрос обозначает, что запрос еще не был предоставлен. Следующие типы запросов ожидания возвращаются столбцом request_status :
Состояние преобразованного запроса означает, что запрашивающий объект получил запрос ресурса и в настоящий момент ожидает, пока будет предоставлено обновление исходного запроса.
Состояние ожидающего запроса означает, что к настоящему моменту запрашивающему объекту не был предоставлен запрос ресурса.
Так как sys.dm_tran_locks заполняется из внутренних структур данных диспетчера блокировки, при сохранении этой информации не добавляется дополнительная нагрузка на обычную обработку. Для материализации представлений требуется доступ к внутренним структурам данных диспетчера блокировок. Это может в незначительной степени повлиять на обычную обработку на сервере. Это влияние должно быть незаметным и проявляться только в отношении часто используемых ресурсов. Поскольку данные этого представления соответствуют активному состоянию диспетчера блокировок, они в любое время могут измениться, а строки добавляются и удаляются по мере выдачи и отмены блокировок. Приложения, запрашивающие это представление, могут испытывать непредсказуемую производительность из-за характера защиты целостности структур диспетчера блокировки. Для этого представления нет данных предыстории.
Два запроса выполняются на одном и том же ресурсе только в том случае, когда все столбцы группы ресурса совпадают.
Управлять блокировкой операций считывания можно с помощью следующих средств.
SET TRANSACTION ISOLATION LEVELдля указания уровня блокировки для сессии. Дополнительные сведения см. в разделе SET TRANSACTION ISOLATION LEVEL (Transact-SQL).Таблица блокировки подсказывает для указания уровня блокировки для отдельной ссылки на таблицу в предложении
FROM. Сведения о синтаксисе и ограничениях см. в разделе "Подсказки таблиц" (Transact-SQL).
Ресурс, работающий под session_id одним из них, может иметь несколько предоставленных блокировок. Различные сущности, выполняемые в рамках одного сеанса, могут владеть блокировкой одного ресурса, а сведения отображаются в request_owner_type столбцах, request_owner_id возвращаемых sys.dm_tran_locks. Если существует несколько экземпляров одного и того же request_owner_type , request_owner_id столбец используется для различения каждого экземпляра. Для распределенных транзакций столбцы request_owner_typerequest_owner_guid отображают разные сведения об сущности.
Например, сеанс S1 владеет общей блокировкой; и транзакцией T1, которая выполняется в сеансе S1, также владеет общей блокировкойTable1Table1. В этом случае столбец, resource_description возвращаемый sys.dm_tran_locks двумя экземплярами одного ресурса. В столбце request_owner_type показан один экземпляр в виде сеанса и другой в виде транзакции. Кроме того, столбец resource_owner_id имеет разные значения.
Несколько курсоров, существующих в одном сеансе, неразличимы и обрабатываются как одна сущность.
Распределенные транзакции, которые не связаны со session_id значением, являются потерянными транзакциями и присваиваются значению session_id-2. Дополнительные сведения см. в разделе KILL (Transact-SQL).
Locks
Блокировки хранятся на ресурсах SQL Server, таких как строки, считываемые или измененные во время транзакции, чтобы предотвратить параллельное использование ресурсов различными транзакциями. Например, если исключительная (X) блокировка получена транзакцией на строку в таблице, никакая другая транзакция не сможет изменить эту строку, пока блокировка не будет освобождена. Минимизация использования блокировок повышает параллелизм, что может улучшить общую производительность.
Сведения о ресурсах
В следующей таблице перечислены ресурсы, представленные в столбце resource_associated_entity_id .
| Тип ресурса | Описание ресурса | resource_associated_entity_id |
|---|---|---|
DATABASE |
Представляет базу данных. | Неприменимо |
FILE |
Представляет файл базы данных. Может быть файлом данных или журнала. | Неприменимо |
OBJECT |
Представляет объект в базе данных. Может быть таблицей данных, представлением, хранимой процедурой, расширенной хранимой процедурой или любым другим объектом, имеющим идентификатор объекта. | Идентификатор объекта |
PAGE |
Представляет отдельную страницу в файле данных. |
HoBt ИДЕНТИФИКАТОР. Это значение соответствует sys.partitions.hobt_id. ID не всегда доступен для ресурсов HoBt PAGE, потому что ID HoBt — это дополнительная информация, которую может предоставить звонящий, и не все звонящие могут предоставить эту информацию. |
KEY |
Представляет строку в указателе. |
HoBt ИДЕНТИФИКАТОР. Это значение соответствует sys.partitions.hobt_id. |
EXTENT |
Представляет экстент файла данных. Экстент — это группа из восьми последовательных страниц. | Неприменимо |
RID |
Представляет физическую строку в куче. |
HoBt ИДЕНТИФИКАТОР. Это значение соответствует sys.partitions.hobt_id. ID не всегда доступен для ресурсов HoBt RID, потому что ID HoBt — это дополнительная информация, которую может предоставить звонящий, и не все звонящие могут предоставить эту информацию. |
APPLICATION |
Представляет определенный ресурс приложения. | Неприменимо |
METADATA |
Представляет метаданные. | Неприменимо |
HOBT |
Представляет кучу или сбалансированное дерево. Это основные структуры путей доступа. |
HoBt ИДЕНТИФИКАТОР. Это значение соответствует sys.partitions.hobt_id. |
OIB |
Представляет онлайн-индекс (re)build. |
HoBt ИДЕНТИФИКАТОР. Это значение соответствует sys.partitions.hobt_id. |
ALLOCATION_UNIT |
Представляет набор связанных страниц, таких как секция индекса. Каждая единица распределения покрывает отдельную цепочку карты распределения индекса (IAM). | Идентификатор единицы распределения. Это значение соответствует sys.allocation_units.allocation_unit_id. |
ROW_GROUP |
Представляет группу строк columnstore. | |
XACT |
Представляет транзакцию. Происходит при включенной оптимизированной блокировке . | Существует два сценария: Сценарий 1 (владелец) - Тип ресурса: XACT.- Описание ресурса: Когда TID замок удерживается, это resource_descriptionXACT ресурс.- Идентификатор связанной с ресурсом сущности: resource_associated_entity_id 0.Сценарий 2 (официант) - Тип ресурса: XACT.- Описание ресурса: когда запрос ожидает блокировки TID, resource_description это XACT ресурс, за которым следует базовый KEY или RID ресурс.- Идентификатор сущности, связанной с ресурсом: resource_associated_entity_id является базовым HoBt идентификатором. |
Замечание
В документации термин B-tree обычно используется в ссылке на индексы. В индексах rowstore ядро СУБД реализует дерево B+. Это не относится к индексам columnstore или индексам в таблицах, оптимизированных для памяти. Дополнительные сведения см. в руководстве по архитектуре и проектированию индексов SQL Sql Server и Azure.
В следующей таблице перечислены подтипы, связанные с типом каждого ресурса.
| ResourceSubType | Действия синхронизации |
|---|---|
ALLOCATION_UNIT.BULK_OPERATION_PAGE |
Предварительно выделенные страницы, используемые для массовых операций. |
ALLOCATION_UNIT.PAGE_COUNT |
Статистика счетчика страниц для единиц распределения во время отложенных операций удаления. |
DATABASE.BULKOP_BACKUP_DB |
Создание резервных копий базы данных с помощью массовых операций. |
DATABASE.BULKOP_BACKUP_LOG |
Создание резервных копий журнала базы данных с помощью массовых операций. |
DATABASE.CHANGE_TRACKING_CLEANUP |
Задачи очистки отслеживания изменений. |
DATABASE.CT_DDL |
Операции DDL над отслеживанием изменений на уровне таблиц и базы данных. |
DATABASE.CONVERSATION_PRIORITY |
Приоритетные операции CREATE BROKER PRIORITYс сервисным брокером, такие как . |
DATABASE.DDL |
Операции языка DDL, связанные с операциями над файловой группой, такими как удаление. |
DATABASE.ENCRYPTION_SCAN |
Синхронизация шифрования TDE. |
DATABASE.PLANGUIDE |
Синхронизация структуры плана. |
DATABASE.RESOURCE_GOVERNOR_DDL |
DDL-операции для управления ресурсами, такие ALTER RESOURCE POOLкак . |
DATABASE.SHRINK |
Операции сжатия базы данных. |
DATABASE.STARTUP |
Синхронизация базы данных при запуске. |
FILE.SHRINK |
Операции сжатия файлов. |
HOBT.BULK_OPERATION |
Операции массовой загрузки, оптимизированные для кучи, с одновременным просмотром на следующих уровнях изоляции: моментальные снимки, незафиксированная операция чтения и зафиксированная операция чтения с использованием управления версиями строк. |
HOBT.INDEX_REORGANIZE |
Операции реорганизации кучи или индекса. |
OBJECT.COMPILE |
Компиляция хранимой процедуры. |
OBJECT.INDEX_OPERATION |
Операции с индексами. |
OBJECT.UPDSTATS |
Обновление статистики для таблицы. |
METADATA.ASSEMBLY |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ASSEMBLY_CLR_NAME |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ASSEMBLY_TOKEN |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ASYMMETRIC_KEY |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.AUDIT |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.AUDIT_ACTIONS |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.AUDIT_SPECIFICATION |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.AVAILABILITY_GROUP |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CERTIFICATE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CHILD_INSTANCE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.COMPRESSED_FRAGMENT |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.COMPRESSED_ROWSET |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CONVERSTATION_ENDPOINT_RECV |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CONVERSTATION_ENDPOINT_SEND |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CONVERSATION_GROUP |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CONVERSATION_PRIORITY |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CREDENTIAL |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CRYPTOGRAPHIC_PROVIDER |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DATA_SPACE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DATABASE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DATABASE_PRINCIPAL |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DB_MIRRORING_SESSION |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DB_MIRRORING_WITNESS |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DB_PRINCIPAL_SID |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ENDPOINT |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ENDPOINT_WEBMETHOD |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.EXPR_COLUMN |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.EXPR_HASH |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.FULLTEXT_CATALOG |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.FULLTEXT_INDEX |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.FULLTEXT_STOPLIST |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.INDEX_EXTENSION_SCHEME |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.INDEXSTATS |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.INSTANTIATED_TYPE_HASH |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.MESSAGE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.METADATA_CACHE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PARTITION_FUNCTION |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PASSWORD_POLICY |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PERMISSIONS |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PLAN_GUIDE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PLAN_GUIDE_HASH |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PLAN_GUIDE_SCOPE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.QNAME |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.QNAME_HASH |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.REMOTE_SERVICE_BINDING |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ROUTE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SCHEMA |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SECURITY_CACHE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SECURITY_DESCRIPTOR |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SEQUENCE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVER_EVENT_SESSIONS |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVER_PRINCIPAL |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVICE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVICE_BROKER_GUID |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVICE_CONTRACT |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVICE_MESSAGE_TYPE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.STATS |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SYMMETRIC_KEY |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.USER_TYPE |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.XML_COLLECTION |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.XML_COMPONENT |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.XML_INDEX_QNAME |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
В следующей таблице представлен формат столбца resource_description для каждого типа ресурса.
| Ресурс | Format | Description |
|---|---|---|
DATABASE |
Неприменимо | Идентификатор базы данных уже доступен в столбце resource_database_id . |
FILE |
<file_id> |
Идентификатор файла, представляемого данным ресурсом. |
OBJECT |
<object_id> |
Идентификатор объекта, представляемого данным ресурсом. Этот объект может быть любым объектом, перечисленным не только в sys.objectsтаблице. |
PAGE |
<file_id>:<page_in_file> |
Представляет файл и идентификатор страницы, представляемые данным ресурсом. |
KEY |
<hash_value> |
Представляет хэш ключевых столбцов из строки, представляемой данным ресурсом. |
EXTENT |
<file_id>:<page_in_files> |
Представляет файл и идентификатор экстента, представляемые данным ресурсом. Идентификатор экстента совпадает с идентификатором первой страницы этого экстента. |
RID |
<file_id>:<page_in_file>:<row_on_page> |
Представляет идентификатор страницы и идентификатор строки, представленной данным ресурсом. Если связанный идентификатор объекта равен 99, этот ресурс представляет один из восьми слотов смешанной страницы на первой странице IAM цепочки IAM. |
APPLICATION |
<DbPrincipalId>:<up to 32 characters>:(<hash_value>) |
Представляет идентификатор участника базы данных, используемого для определения области действия ресурса блокировки этого приложения. Также включает до 32 символов из строки ресурса, соответствующего ресурсу блокировок для этого приложения. В некоторых случаях можно отобразить только два символа из-за того, что полная строка больше не доступна. Это происходит только во время восстановления базы данных для блокировок приложений, которые вызываются заново как часть процесса восстановления. Это хэш-значение представляет собой хэш-код полной строки ресурса, соответствующего ресурсу блокировки данного приложения. |
HOBT |
Неприменимо |
HoBt ID включён как resource_associated_entity_id. |
ALLOCATION_UNIT |
Неприменимо | Идентификатор единицы выделения включается в качестве идентификатора resource_associated_entity_id. |
XACT |
<dbid>:<XdesId low>:<XdesId high> |
TID Ресурс (идентификатор транзакции). Происходит при включенной оптимизированной блокировке . |
XACT KEY |
[XACT <dbid>:<XdesId low>:<XdesId High>] KEY (<hash_value>) |
Базовый ресурс, на котором ждёт транзакция, с индексным KEY объектом. Происходит при включенной оптимизированной блокировке . |
XACT RID |
[XACT <dbid>:<XdesId low>:<XdesId High>] RID (<file_id>:<page_in_file>:<row_on_page>) |
Базовый ресурс, на который ждёт транзакция, с объектом кучи RID . Происходит при включенной оптимизированной блокировке . |
METADATA.ASSEMBLY |
assembly_id = A |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ASSEMBLY_CLR_NAME |
$qname_id = Q |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ASSEMBLY_TOKEN |
assembly_id = A, $token_id |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ASSYMMETRIC_KEY |
asymmetric_key_id = A |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.AUDIT |
audit_id = A |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.AUDIT_ACTIONS |
device_id = D, major_id = M |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.AUDIT_SPECIFICATION |
audit_specification_id = A |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.AVAILABILITY_GROUP |
availability_group_id = A |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CERTIFICATE |
certificate_id = C |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CHILD_INSTANCE |
$hash = H1:H2:H3 |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.COMPRESSED_FRAGMENT |
object_id = O , compressed_fragment_id = C |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.COMPRESSED_ROW |
object_id = O |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CONVERSTATION_ENDPOINT_RECV |
$hash = H1:H2:H3 |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CONVERSTATION_ENDPOINT_SEND |
$hash = H1:H2:H3 |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CONVERSATION_GROUP |
$hash = H1:H2:H3 |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CONVERSATION_PRIORITY |
conversation_priority_id = C |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CREDENTIAL |
credential_id = C |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.CRYPTOGRAPHIC_PROVIDER |
provider_id = P |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DATA_SPACE |
data_space_id = D |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DATABASE |
database_id = D |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DATABASE_PRINCIPAL |
principal_id = P |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DB_MIRRORING_SESSION |
database_id = D |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DB_MIRRORING_WITNESS |
$hash = H1:H2:H3 |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.DB_PRINCIPAL_SID |
$hash = H1:H2:H3 |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ENDPOINT |
endpoint_id = E |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ENDPOINT_WEBMETHOD |
$hash = H1:H2:H3 |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.FULLTEXT_CATALOG |
fulltext_catalog_id = F |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.FULLTEXT_INDEX |
object_id = O |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.EXPR_COLUMN |
object_id = O, column_id = C |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.EXPR_HASH |
object_id = O, $hash = H |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.FULLTEXT_CATALOG |
fulltext_catalog_id = F |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.FULLTEXT_INDEX |
object_id = O |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.FULLTEXT_STOPLIST |
fulltext_stoplist_id = F |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.INDEX_EXTENSION_SCHEME |
index_extension_id = I |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.INDEXSTATS |
object_id = O, index_id или stats_id = I |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.INSTANTIATED_TYPE_HASH |
user_type_id = U, hash = H |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.MESSAGE |
message_id = M |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.METADATA_CACHE |
$hash = H1:H2:H3 |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PARTITION_FUNCTION |
function_id = F |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PASSWORD_POLICY |
principal_id = P |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PERMISSIONS |
class = C |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PLAN_GUIDE |
plan_guide_id = P |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PLAN_GUIDE_HASH |
$hash = H1:H2:H3 |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.PLAN_GUIDE_SCOPE |
scope_id = S |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.QNAME |
$qname_id = Q |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.QNAME_HASH |
$qname_scope_id = Q, $qname_hash = H |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.REMOTE_SERVICE_BINDING |
remote_service_binding_id = R |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.ROUTE |
route_id = R |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SCHEMA |
schema_id = S |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SECURITY_CACHE |
$hash = H1:H2:H3 |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SECURITY_DESCRIPTOR |
sd_id = S |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SEQUENCE |
$seq_type = S, object_id = O |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVER |
server_id = S |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVER_EVENT_SESSIONS |
event_session_id = E |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVER_PRINCIPAL |
principal_id = P |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVICE |
service_id = S |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVICE_BROKER_GUID |
$hash = H1:H2:H3 |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVICE_CONTRACT |
service_contract_id = S |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SERVICE_MESSAGE_TYPE |
message_type_id = M |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.STATS |
object_id = O, stats_id = S |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.SYMMETRIC_KEY |
symmetric_key_id = S |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.USER_TYPE |
user_type_id = U |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.XML_COLLECTION |
xml_collection_id = X |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.XML_COMPONENT |
xml_component_id = X |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
METADATA.XML_INDEX_QNAME |
object_id = O, $qname_id = Q |
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
Examples
А. Использование sys.dm_tran_locks с другими инструментами
В следующем примере выполняется работа со сценарием, в котором операция обновления блокируется другой транзакцией. С помощью sys.dm_tran_locks и других средств предоставляется информация о блокировке ресурсов.
USE tempdb;
GO
-- Create test table and index.
CREATE TABLE t_lock
(
c1 int, c2 int
);
GO
CREATE INDEX t_lock_ci on t_lock(c1);
GO
-- Insert values into test table
INSERT INTO t_lock VALUES (1, 1);
INSERT INTO t_lock VALUES (2, 2);
INSERT INTO t_lock VALUES (3, 3);
INSERT INTO t_lock VALUES (4, 4);
INSERT INTO t_lock VALUES (5, 5);
INSERT INTO t_lock VALUES (6, 6);
GO
-- Session 1
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN TRAN
SELECT c1
FROM t_lock
WITH(holdlock, rowlock);
-- Session 2
BEGIN TRAN
UPDATE t_lock SET c1 = 10;
В следующем запросе отображаются сведения о блокировке. Значение для <dbid> этого параметра должно быть заменено значением database_id from sys.databases.
SELECT resource_type, resource_associated_entity_id,
request_status, request_mode,request_session_id,
resource_description
FROM sys.dm_tran_locks
WHERE resource_database_id = <dbid>;
Следующий запрос возвращает сведения об объекте с помощью значения resource_associated_entity_id из предыдущего запроса. Этот запрос должен быть выполнен, пока существует соединение с базой данных, содержащей объект.
SELECT object_name(object_id), *
FROM sys.partitions
WHERE hobt_id=<resource_associated_entity_id> ;
В следующем запросе показаны блокирующие сведения.
SELECT
t1.resource_type,
t1.resource_database_id,
t1.resource_associated_entity_id,
t1.request_mode,
t1.request_session_id,
t2.blocking_session_id
FROM sys.dm_tran_locks as t1
INNER JOIN sys.dm_os_waiting_tasks as t2
ON t1.lock_owner_address = t2.resource_address;
Освобождение ресурсов с помощью отката транзакций.
-- Session 1
ROLLBACK;
GO
-- Session 2
ROLLBACK;
GO
B. Связывание сведений о сеансе с потоками операционной системы
В следующем примере возвращаются сведения, которые связываются session_id с идентификатором потока Windows. За производительностью потока можно наблюдать в системном мониторе Windows. Этот запрос не возвращает session_id спящий в данный момент объект.
SELECT STasks.session_id, SThreads.os_thread_id
FROM sys.dm_os_tasks AS STasks
INNER JOIN sys.dm_os_threads AS SThreads
ON STasks.worker_address = SThreads.worker_address
WHERE STasks.session_id IS NOT NULL
ORDER BY STasks.session_id;
GO