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


sys.dm_tran_locks (Transact-SQL)

Возвращает сведения об активных в данный момент в SQL Server 2008 R2 ресурсах диспетчера блокировок. Каждая строка представляет текущий активный запрос диспетчеру блокировок о блокировке, которая была получена или находится в ожидании получения.

Столбцы в результирующем наборе разделяются на две группы: ресурс и запрос. Группа ресурсов описывает ресурсы, на которые был выполнен запрос блокировки, а группа запросов описывает запрос блокировки.

Имя столбца

Тип данных

Описание

resource_type

nvarchar(60)

Представляет тип ресурса. Значение может быть одним из следующих: DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICATION, METADATA, HOBT или ALLOCATION_UNIT.

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)

Режим запроса. Режимом для предоставленных запросов является режим предоставления, для запросов в ожидании — запрашиваемый режим.

request_type

nvarchar(60)

Тип запроса. Значение LOCK.

request_status

nvarchar(60)

Текущее состояние запроса. Допустимые значения — GRANTED, CONVERT или WAIT.

request_reference_count

smallint

Возвращает приблизительное количество случаев, когда этот ресурс был запрошен одним и тем же объектом.

request_lifetime

int

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

request_session_id

int

Идентификатор сеанса, которому в данный момент принадлежит этот запрос. Для распределенных и связанных транзакций идентификатор владеющего сеанса может меняться. Значение -2 показывает, что запрос относится к потерянной распределенной транзакции. Значение -3 показывает, что запрос принадлежит отложенной транзакции восстановления, например транзакции, для которой откат во время восстановления был отложен из-за невозможности успешно завершить операцию.

request_exec_context_id

int

Идентификатор контекста выполнения процесса, которому в данный момент принадлежит запрос.

request_request_id

int

Идентификатор запроса (идентификатор пакета) в процессе, которому в данный момент принадлежит запрос. Это значение меняется каждый раз при изменении в соединении режима MARS для транзакций.

request_owner_type

nvarchar(60)

Тип сущности, которой принадлежит запрос. Запрос диспетчера блокировок может принадлежать нескольким разным объектам. Допустимыми значениями являются следующие.

TRANSACTION = Запрос принадлежит транзакции.

CURSOR = Запрос принадлежит курсору.

SESSION = Запрос принадлежит сеансу пользователя.

SHARED_TRANSACTION_WORKSPACE = Запрос принадлежит общей части рабочего пространства транзакции.

EXCLUSIVE_TRANSACTION_WORKSPACE = Запрос принадлежит монопольной части рабочего пространства транзакции.

ПримечаниеПримечание
Рабочие пространства предназначены для внутреннего использования; они хранят блокировки для прикрепленных сеансов.

request_owner_id

bigint

Идентификатор определенного владельца запроса. Это значение используется только для транзакций, для которых оно является идентификатором транзакции.

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.

Разрешения

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

Замечания

Состояние предоставленного запроса показывает, что блокировка ресурса была предоставлена запрашивающему объекту. Ожидающий запрос обозначает, что запрос еще не был предоставлен. Следующий тип ожидающих запросов возвращается столбцом request_status.

  • Состояние преобразованного запроса означает, что запрашивающий объект получил запрос ресурса и в настоящий момент ожидает, пока будет предоставлено обновление исходного запроса.

  • Состояние ожидающего запроса означает, что к настоящему моменту запрашивающему объекту не был предоставлен запрос ресурса.

Поскольку представление sys.dm_tran_locks заполняется структурами данных внутреннего диспетчера блокировок, обслуживание этих данных не добавляет дополнительной нагрузки к обычной обработке данных. Для материализации представлений требуется доступ к внутренним структурам данных диспетчера блокировок. Это может в незначительной степени повлиять на обычную обработку на сервере. Это влияние должно быть незаметным и проявляться только в отношении часто используемых ресурсов. Поскольку данные этого представления соответствуют активному состоянию диспетчера блокировок, они в любое время могут измениться, а строки добавляются и удаляются по мере выдачи и отмены блокировок. Для этого представления нет данных предыстории.

Два запроса выполняются на одном и том же ресурсе только в том случае, когда все столбцы группы ресурса совпадают.

Управлять блокировкой операций считывания можно с помощью следующих средств.

  • SET TRANSACTION ISOLATION LEVEL для определения уровня блокировки сеанса. Дополнительные сведения см. в разделе SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

  • Табличные подсказки блокировки для указания уровня блокировки для отдельной ссылки таблицы в предложении FROM. Синтаксис и ограничения см. в разделе Табличные подсказки (Transact-SQL).

В пределах одного сеанса ресурсу может быть предоставлено более одной блокировки. Разным объектам в пределах одного сеанса могут быть предоставлены блокировки на один и тот же ресурс; эти сведения отображаются представлением sys.dm_tran_locks в столбцах request_owner_type и request_owner_id. В случае существования нескольких экземпляров одного и того же типа request_owner_type столбец request_owner_id используется для различия экземпляров. В случае распределенных транзакций столбцы request_owner_type и request_owner_guid отображают различные сведения о сущности.

Например, сеанс S1 владеет совмещаемой блокировкой таблицы Table1, а транзакция Т1, запущенная в сеансе S1, также владеет совмещаемой блокировкой таблицы Table1. В этом случае столбец resource_description, возвращаемый представлением sys.dm_tran_locks, отображает два экземпляра для одного и того же ресурса. В столбце request_owner_type один экземпляр отображается как сеанс, второй — как транзакция. Кроме этого, столбец resource_owner_id будет содержать разные значения.

Несколько курсоров, существующих в одном сеансе, неразличимы и обрабатываются как одна сущность.

Дополнительные сведения о типах блокировок, используемых компонентом SQL Server Database Engine, см. в разделе Блокировка в компоненте Database Engine.

Распределенные транзакции, не связанные со значением идентификатора сеанса, являются потерянными, и им назначается значение идентификатора сеанса, равное -2. Дополнительные сведения см. в разделе KILL (Transact-SQL).

Подробности ресурса

В следующей таблице перечислены ресурсы, представленные в столбце resource_associated_entity_id.

Тип ресурса

Описание ресурса

Resource_associated_entity_id

DATABASE

Представляет базу данных.

Неприменимо

FILE

Представляет файл базы данных. Может быть файлом данных или журнала.

Неприменимо

OBJECT

Представляет объект базы данных. Может быть таблицей данных, представлением, хранимой процедурой, расширенной хранимой процедурой или любым другим объектом, имеющим идентификатор объекта.

Идентификатор объекта.

PAGE

Представляет отдельную страницу в файле данных.

Идентификатор HoBt. Это значение соответствует представлению sys.partitions.hobt_id. Идентификатор HoBt не всегда доступен для ресурсов PAGE, поскольку в нем содержатся дополнительные данные, предоставляемые вызывающим участником, но не все вызывающие объекты способны предоставить эти данные.

KEY

Представляет строку в указателе.

Идентификатор HoBt. Это значение соответствует представлению sys.partitions.hobt_id.

EXTENT

Представляет экстент файла данных. Экстент — это группа из восьми последовательных страниц.

Неприменимо

RID

Представляет физическую строку в куче.

Идентификатор HoBt. Это значение соответствует представлению sys.partitions.hobt_id. Идентификатор HoBt не всегда доступен для ресурсов RID, поскольку в нем содержатся дополнительные данные, предоставляемые вызывающим участником, но не все вызывающие объекты способны предоставить эти данные.

APPLICATION

Представляет определенный ресурс приложения.

Неприменимо

METADATA

Представляет метаданные.

Неприменимо

HOBT

Представляет кучу или сбалансированное дерево. Это основные структуры путей доступа.

Идентификатор HoBt. Это значение соответствует представлению sys.partitions.hobt_id.

ALLOCATION_UNIT

Представляет набор связанных страниц, таких как секция индекса. Каждая единица распределения покрывает отдельную цепочку карты распределения индекса (IAM).

Идентификатор единицы распределения. Это значение соответствует представлению sys.allocation_units.allocation_unit_id.

В следующей таблице перечислены подтипы, связанные с типом каждого ресурса.

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

Операции приоритета диалогов компонента Service Broker, например 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.CERTIFICATE

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

METADATA.CHILD_INSTANCE

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

METADATA.COMPRESSED_FRAGMENT

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

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 для каждого типа ресурса.

Ресурс

Формат

Описание

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>:<до 32 символов>:(<hash_value>)

Представляет идентификатор участника базы данных, используемого для определения области действия ресурса блокировки этого приложения. Также включает до 32 символов из строки ресурса, соответствующего ресурсу блокировок для этого приложения. В некоторых случаях из полной строки, больше не являющейся доступной, могут отображаться только 2 символа. Это происходит только во время восстановления базы данных для блокировок приложений, которые вызываются заново как часть процесса восстановления. Это хэш-значение представляет собой хэш-код полной строки ресурса, соответствующего ресурсу блокировки данного приложения.

HOBT

Неприменимо

Идентификатор HoBt, включенный в качестве столбца resource_associated_entity_id.

ALLOCATION_UNIT

Неприменимо

Идентификатор единицы распределения, включенный в качестве столбца resource_associated_entity_id.

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.CERTIFICATE

certificate_id = C

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

METADATA.CHILD_INSTANCE

$hash = H1:H2:H3

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

METADATA.COMPRESSED_FRAGMENT

compressed_fragment_id = C

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

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 or 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

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

Примеры

А. Использование 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),(2,2),(3,3),(4,4),(5,5),(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 из представления 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), partition_id, index_id, partition_number
    hobt_id, rows
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

Б. Связывание данных о сеансе с потоками операционной системы

В следующем примере возвращаются данные, связывающие идентификатор сеанса с идентификатором потока Windows. Производительность потока можно отслеживать в системном мониторе Windows. Запрос не возвращает идентификаторы сеансов, которые в настоящий момент находятся в ждущем режиме.

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