sys.dm_tran_locks (Transact-SQL)

Retourne des informations sur les ressources actives du gestionnaire de verrous dans SQL Server 2012. Chaque ligne représente une demande active au gestionnaire de verrous pour un verrou autorisé ou en attente d'autorisation.

Les colonnes du jeu de résultats sont réparties en deux groupes principaux : ressource et demande. Le groupe ressource décrit la ressource sur laquelle la demande de verrou a lieu ; le groupe demande décrit la demande de verrou.

Nom de la colonne

Type de données

Description

resource_type

nvarchar(60)

Représente le type de ressource. Il peut s'agir de l'une des valeurs suivantes : DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICATION, METADATA, HOBT ou ALLOCATION_UNIT.

resource_subtype

nvarchar(60)

Représente un sous-type de resource_type. D'un point de vue technique, il est possible d'acquérir un verrou avec sous-type sans conserver un verrou sans sous-type du type parent. Les différents sous-types n'entrent pas en conflit entre eux ou avec le type parent sans sous-type. Toutes les ressources ne comportent pas de sous-types.

resource_database_id

int

ID de la base de données dans laquelle cette ressource s'applique. L'ID de la base de données définit l'étendue de toutes les ressources gérées par le gestionnaire de verrous.

resource_description

nvarchar(256)

Description de la ressource qui contient uniquement les informations non disponibles dans d'autres colonnes de ressources.

resource_associated_entity_id

bigint

ID de l'entité dans une base de données à laquelle une ressource est associée. Selon le type de ressource, il peut s'agir d'un ID d'objet, d'un ID Hobt ou d'un ID d'unité d'allocation.

resource_lock_partition

Int

ID de la partition de verrou pour une ressource de verrou partitionnée. La valeur pour les ressources de verrou non partitionnées est 0.

request_mode

nvarchar(60)

Mode de la demande. Pour les demandes autorisées, il s'agit du mode autorisé ; pour les demandes en attente, il s'agit du mode demandé.

request_type

nvarchar(60)

Type de la demande. La valeur est LOCK.

request_status

nvarchar(60)

État actuel de cette demande. Les valeurs possibles sont Autorisée, De conversion ou En attente (GRANTED, CONVERT ou WAIT).

request_reference_count

smallint

Retourne le nombre approximatif de fois que le même demandeur a demandé cette ressource.

request_lifetime

int

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

request_session_id

int

ID de la session actuellement propriétaire de la demande. L'ID de la session propriétaire peut changer pour les transactions distribuées et liées. La valeur -2 indique que la demande appartient à une transaction distribuée orpheline. -3 indique que la demande appartient à une transaction de récupération différée, par exemple une transaction dont l'annulation a été différée à la récupération car l'annulation ne s'est pas déroulée correctement.

request_exec_context_id

int

ID du contexte d'exécution du processus actuellement propriétaire de cette demande.

request_request_id

int

ID de la demande (ID du traitement) du processus actuellement propriétaire de cette demande. Cette valeur change chaque fois que la connexion MARS (Multiple Active Result Set) active d'une transaction change.

request_owner_type

nvarchar(60)

Type de l'entité propriétaire de la demande. Diverses entités peuvent être propriétaires des demandes de gestionnaire de verrous. Les valeurs possibles sont :

TRANSACTION = Une transaction est propriétaire de la demande.

CURSOR = Un curseur est propriétaire de la demande.

SESSION = Une session utilisateur est propriétaire de la demande.

SHARED_TRANSACTION_WORKSPACE = La partie partagée de l'espace de travail des transactions est propriétaire de la demande.

EXCLUSIVE_TRANSACTION_WORKSPACE = La partie exclusive de l'espace de travail des transactions est propriétaire de la demande.

NOTIFICATION_OBJECT = Un composant SQL Server interne est propriétaire de la demande. Ce composant a demandé au gestionnaire de verrous de l'informer lorsqu'un autre composant attend le moment d'acquérir le verrou. La fonctionnalité FileTable est un composant qui utilise cette valeur.

RemarqueRemarque
Les espaces de travail sont utilisés en interne pour maintenir des verrous pour les sessions inscrites.

request_owner_id

bigint

ID du propriétaire spécifique de cette demande.

Lorsqu'une transaction est propriétaire de la demande, cette valeur contient l'ID de transaction.

Lorsqu'un FileTable est propriétaire de la demande, request_owner_id prend l'une des valeurs suivantes :

ValeurDescription
-4Un FileTable a pris un verrou de base de données.
-3Un FileTable a pris un verrou de table.
Autre valeurLa valeur représente un descripteur de fichier.Cette valeur apparaît également comme fcb_id dans la vue de gestion dynamique sys.dm_filestream_non_transacted_handles (Transact-SQL).

request_owner_guid

uniqueidentifier

GUID du propriétaire spécifique de cette demande. Cette valeur est utilisée uniquement par une transaction distribuée dans laquelle la valeur correspond au GUID MS DTC de cette transaction.

request_owner_lockspace_id

nvarchar(32)

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie. Cette valeur représente l'ID de l'espace de verrouillage du demandeur. Cet ID détermine si deux demandeurs sont mutuellement compatibles et s'il est possible de leur accorder des verrous dans des modes conflictuels.

lock_owner_address

varbinary(8)

Adresse mémoire de la structure des données internes utilisées pour suivre cette demande. Cette colonne peut être jointe à la colonne resource_address dans sys.dm_os_waiting_tasks.

Autorisations

Nécessite l'autorisation VIEW SERVER STATE sur le serveur.

Notes

Un état de demande autorisée indique qu'un verrou a été accordé au demandeur sur une ressource. Une demande en attente indique que la demande n'est pas encore autorisée. La colonne request_status retourne les types de demandes en attente suivants :

  • Une demande de conversion indique que le demandeur a déjà reçu l'autorisation pour la ressource et attend l'autorisation de mise à jour de la demande initiale.

  • Une demande en attente indique que le demandeur n'a pas reçu l'autorisation pour la ressource.

Étant donné que sys.dm_tran_locks est remplie avec des structures de données internes du gestionnaire de verrous, la conservation de ces informations ne génère pas de charge supplémentaire dans le traitement normal. La matérialisation de la vue ne nécessite pas l'accès aux structures des données internes du gestionnaire de verrous. Ceci minimise les effets sur le traitement normal du serveur. Ces effets doivent être imperceptibles et affecter uniquement les ressources utilisées intensivement. Du fait que les données de cette vue correspondent à l'état actif du gestionnaire de verrous, elles peuvent changer à tout moment ; des lignes sont ajoutées et supprimées lorsque des verrous sont acquis et libérés. Cette vue ne comporte pas d'informations historiques.

Deux demandes agissent sur la même ressource uniquement si toutes les colonnes du groupe de ressources sont égales.

Vous pouvez contrôler le verrouillage des opérations de lecture à l'aide des outils suivants :

Une ressource qui est exécutée sous un ID de session peut comporter plusieurs verrous autorisés. Différentes entités s'exécutant dans une session peuvent avoir chacune un verrou sur la même ressource ; les informations sont affichées dans les colonnes request_owner_type et request_owner_id retournées par sys.dm_tran_locks. S'il existe plusieurs instances pour un même request_owner_type, la colonne request_owner_id est utilisée pour les distinguer. Pour les transactions distribuées, les colonnes request_owner_type et request_owner_guid affichent des informations sur les différentes entités.

Par exemple, la Session S1 possède un verrou partagé sur la Table1 ; et une transaction T1 exécutée dans la session S1 possède également un verrou partagé sur la Table1. Dans ce cas, la colonne resource_description retournée par sys.dm_tran_locks affiche deux instances de la même ressource. La colonne request_owner_type affiche une instance comme une session et l'autre comme une transaction. Les valeurs de la colonne resource_owner_id sont également différentes.

Il n'est pas possible de distinguer plusieurs curseurs d'une même session qui sont traités comme une seule entité.

Les transactions distribuées non associées à un ID de session sont des transactions orphelines. L'ID de session -2 leur est attribué. Pour plus d'informations, consultez KILL (Transact-SQL).

Détails des ressources

Le tableau suivant répertorie les ressources qui sont représentées dans la colonne resource_associated_entity_id.

Type de ressource

Description de la ressource

Resource_associated_entity_id

DATABASE

Représente une base de données.

Non applicable

FILE

Représente un fichier de base de données. Il peut s'agir d'un fichier journal ou d'un fichier de données.

Non applicable

OBJECT

Représente un objet de base de données. Il peut s'agir d'une table de données, d'une vue, d'une procédure stockée, d'une procédure stockée étendue ou de tout objet possédant un ID d'objet.

ID de l'objet

PAGE

Représente une seule page dans un fichier de données.

ID HoBt. Cette valeur correspond à sys.partitions.hobt_id. L'ID HoBt n'est pas toujours disponible pour les ressources PAGE car il se compose d'informations supplémentaires que peut fournir l'appelant, et tous les appelants ne sont pas capables de fournir ces informations.

KEY

Représente une ligne dans un index.

ID HoBt. Cette valeur correspond à sys.partitions.hobt_id.

EXTENT

Représente une étendue d'un fichier de données. Une étendue est un groupe de huit pages contiguës.

Non applicable

RID

Représente une ligne physique dans un segment de mémoire.

ID HoBt. Cette valeur correspond à sys.partitions.hobt_id. L'ID HoBt n'est pas toujours disponible pour les ressources RID car il se compose d'informations supplémentaires que peut fournir l'appelant, et tous les appelants ne sont pas capables de fournir ces informations.

APPLICATION

Représente une ressource spécifiée pour une application.

Non applicable

METADATA

Représente des informations de métadonnées.

Non applicable

HOBT

Représente un segment de mémoire ou un arbre B-tree. Structures des chemins d'accès de base.

ID HoBt. Cette valeur correspond à sys.partitions.hobt_id.

ALLOCATION_UNIT

Représente un ensemble de pages liées (par exemple, une partition d'index). Chaque unité d'allocation couvre une seule chaîne de pages IAM.

ID d'unité d'allocation. Cette valeur correspond à sys.allocation_units.allocation_unit_id.

Le tableau suivant répertorie les sous-types qui sont associés à chaque type de ressource.

ResourceSubType

Synchronise

ALLOCATION_UNIT.BULK_OPERATION_PAGE

Pages préallouées utilisées pour les opérations en bloc.

ALLOCATION_UNIT.PAGE_COUNT

Statistiques du nombre de pages des unités d'allocation pendant les opérations de suppression différées.

DATABASE.BULKOP_BACKUP_DB

Sauvegardes de bases de données avec des opérations en bloc.

DATABASE.BULKOP_BACKUP_LOG

Sauvegardes du journal de base de données avec des opérations en bloc.

DATABASE.CHANGE_TRACKING_CLEANUP

Tâches de nettoyage du suivi des modifications.

DATABASE.CT_DDL

Opérations DDL de suivi des modifications aux niveaux de la base de données et de la table.

DATABASE.CONVERSATION_PRIORITY

Opérations de priorité de conversation de Service Broker telles que CREATE BROKER PRIORITY.

DATABASE.DDL

Opérations DDL (Data Definition Language) avec des opérations sur des groupes de fichiers (par exemple, des suppressions).

DATABASE.ENCRYPTION_SCAN

Synchronisation de chiffrement TDE.

DATABASE.PLANGUIDE

Synchronisation de repère de plan.

DATABASE.RESOURCE_GOVERNOR_DDL

Opérations DDL pour les opérations du gouverneur de ressources telles qu'ALTER RESOURCE POOL.

DATABASE.SHRINK

Opérations de réduction de base de données.

DATABASE.STARTUP

Utilisé pour la synchronisation du démarrage des bases de données.

FILE.SHRINK

Opérations de réduction de fichier.

HOBT.BULK_OPERATION

Opérations de chargement en masse optimisées sur les segments de mémoire avec analyse simultanée sous les niveaux d'isolation suivants : instantané, lecture non validée et lecture validée utilisant le contrôle de version de ligne.

HOBT.INDEX_REORGANIZE

Opérations de réorganisation d'index ou de segments mémoire.

OBJECT.COMPILE

Compilation de procédure stockée.

OBJECT.INDEX_OPERATION

Opérations d'index.

OBJECT.UPDSTATS

Mises à jour des statistiques d'une table.

METADATA.ASSEMBLY

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ASSEMBLY_CLR_NAME

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ASSEMBLY_TOKEN

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ASYMMETRIC_KEY

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.AUDIT

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.AUDIT_ACTIONS

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.AUDIT_SPECIFICATION

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.AVAILABILITY_GROUP

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CERTIFICATE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CHILD_INSTANCE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.COMPRESSED_FRAGMENT

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.COMPRESSED_ROWSET

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CONVERSTATION_ENDPOINT_RECV

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CONVERSTATION_ENDPOINT_SEND

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CONVERSATION_GROUP

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CONVERSATION_PRIORITY

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CREDENTIAL

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CRYPTOGRAPHIC_PROVIDER

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DATA_SPACE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DATABASE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DATABASE_PRINCIPAL

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DB_MIRRORING_SESSION

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DB_MIRRORING_WITNESS

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DB_PRINCIPAL_SID

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ENDPOINT

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ENDPOINT_WEBMETHOD

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.EXPR_COLUMN

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.EXPR_HASH

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.FULLTEXT_CATALOG

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.FULLTEXT_INDEX

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.FULLTEXT_STOPLIST

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.INDEX_EXTENSION_SCHEME

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.INDEXSTATS

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.INSTANTIATED_TYPE_HASH

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.MESSAGE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.METADATA_CACHE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.PARTITION_FUNCTION

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.PASSWORD_POLICY

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.PERMISSIONS

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.PLAN_GUIDE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.PLAN_GUIDE_HASH

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.PLAN_GUIDE_SCOPE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.QNAME

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.QNAME_HASH

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.REMOTE_SERVICE_BINDING

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ROUTE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SCHEMA

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SECURITY_CACHE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SECURITY_DESCRIPTOR

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SEQUENCE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVER_EVENT_SESSIONS

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVER_PRINCIPAL

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVICE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVICE_BROKER_GUID

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVICE_CONTRACT

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVICE_MESSAGE_TYPE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.STATS

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SYMMETRIC_KEY

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.USER_TYPE

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.XML_COLLECTION

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.XML_COMPONENT

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.XML_INDEX_QNAME

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

Le tableau suivant fournit le format de la colonne resource_description pour chaque type de ressource.

Ressource

Format

Description

DATABASE

Non applicable

L'ID de la base de données est déjà disponible dans la colonne resource_database_id.

FILE

<file_id>

ID du fichier représenté par cette ressource.

OBJECT

<object_id>

ID de l'objet représenté par cette ressource. Il peut s'agir de n'importe quel objet figurant dans sys.objects, et pas seulement d'une table.

PAGE

<file_id>:<page_in_file>

Représente le fichier et l'ID de la page qui est représentée par cette ressource.

KEY

<hash_value>

Représente un hachage des colonnes clés de la ligne représentée par cette ressource.

EXTENT

<file_id>:<page_in_file>

Représente le fichier et l'ID de la page de l'étendue représentée par cette ressource. L'ID d'étendue est identique à l'ID de la première page de l'étendue.

RID

<file_id>:<page_in_file>:<row_on_page>

Représente l'ID de page et l'ID de ligne représentée par cette ressource. Remarquez que si l'ID de l'objet associé est égal à 99, cette ressource représente l'une des huit pages mélangées de la première page IAM d'une chaîne IAM.

APPLICATION

<DbPrincipalId>:<jusqu'à 32 caractères>:(<hash_value>)

Représente l'ID du principal de base de données qui est utilisé pour fixer l'étendue de la ressource des verrous sur l'application. Jusqu'à 32 caractères de la chaîne des ressources correspondent à cette ressource de verrous pour l'application. Dans certains cas, il est possible d'afficher seulement 2 caractères du fait que la chaîne complète n'est plus disponible ; cela se produit uniquement lors de la récupération d'une base de données pour les verrous d'application qui sont repris au cours de la récupération. La valeur de hachage représente un hachage de l'ensemble de la chaîne de ressource qui correspond à cette ressource de verrous pour l'application.

HOBT

Non applicable

l'ID HoBt est inclus en tant que resource_associated_entity_id.

ALLOCATION_UNIT

Non applicable

L'ID d'unité d'allocation est inclus en tant que resource_associated_entity_id.

METADATA.ASSEMBLY

assembly_id = A

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ASSEMBLY_CLR_NAME

$qname_id = Q

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ASSEMBLY_TOKEN

assembly_id = A, $token_id

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ASSYMMETRIC_KEY

asymmetric_key_id = A

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.AUDIT

audit_id = A

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.AUDIT_ACTIONS

device_id = D, major_id = M

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.AUDIT_SPECIFICATION

audit_specification_id = A

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.AVAILABILITY_GROUP

availability_group_id = A

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CERTIFICATE

certificate_id = C

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CHILD_INSTANCE

$hash = H1:H2:H3

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.COMPRESSED_FRAGMENT

object_id = O , compressed_fragment_id = C

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.COMPRESSED_ROW

object_id = O

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CONVERSTATION_ENDPOINT_RECV

$hash = H1:H2:H3

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CONVERSTATION_ENDPOINT_SEND

$hash = H1:H2:H3

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CONVERSATION_GROUP

$hash = H1:H2:H3

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CONVERSATION_PRIORITY

conversation_priority_id = C

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CREDENTIAL

credential_id = C

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.CRYPTOGRAPHIC_PROVIDER

provider_id = P

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DATA_SPACE

data_space_id = D

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DATABASE

database_id = D

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DATABASE_PRINCIPAL

principal_id = P

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DB_MIRRORING_SESSION

database_id = D

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DB_MIRRORING_WITNESS

$hash = H1:H2:H3

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.DB_PRINCIPAL_SID

$hash = H1:H2:H3

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ENDPOINT

endpoint_id = E

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ENDPOINT_WEBMETHOD

$hash = H1:H2:H3

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.FULLTEXT_CATALOG

fulltext_catalog_id = F

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.FULLTEXT_INDEX

object_id = O

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.EXPR_COLUMN

object_id = O, column_id = C

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.EXPR_HASH

object_id = O, $hash = H

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.FULLTEXT_CATALOG

fulltext_catalog_id = F

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.FULLTEXT_INDEX

object_id = O

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.FULLTEXT_STOPLIST

fulltext_stoplist_id = F

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.INDEX_EXTENSION_SCHEME

index_extension_id = I

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.INDEXSTATS

object_id = O, index_id ou stats_id = I

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.INSTANTIATED_TYPE_HASH

user_type_id = U, hash = H

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.MESSAGE

message_id = M

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.METADATA_CACHE

$hash = H1:H2:H3

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.PARTITION_FUNCTION

function_id = F

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.PASSWORD_POLICY

principal_id = P

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.PERMISSIONS

class = C

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.PLAN_GUIDE

plan_guide_id = P

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA. PLAN_GUIDE_HASH

$hash = H1:H2:H3

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA. PLAN_GUIDE_SCOPE

scope_id = S

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.QNAME

$qname_id = Q

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.QNAME_HASH

$qname_scope_id = Q, $qname_hash = H

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.REMOTE_SERVICE_BINDING

remote_service_binding_id = R

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.ROUTE

route_id = R

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SCHEMA

schema_id = S

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SECURITY_CACHE

$hash = H1:H2:H3

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SECURITY_DESCRIPTOR

sd_id = S

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SEQUENCE

$seq_type = S, object_id = O

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVER

server_id = S

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVER_EVENT_SESSIONS

event_session_id = E

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVER_PRINCIPAL

principal_id = P

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVICE

service_id = S

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVICE_BROKER_GUID

$hash = H1:H2:H3

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVICE_CONTRACT

service_contract_id = S

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SERVICE_MESSAGE_TYPE

message_type_id = M

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.STATS

object_id = O, stats_id = S

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.SYMMETRIC_KEY

symmetric_key_id = S

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.USER_TYPE

user_type_id = U

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.XML_COLLECTION

xml_collection_id = X

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.XML_COMPONENT

xml_component_id = X

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

METADATA.XML_INDEX_QNAME

object_id = O, $qname_id = Q

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

Exemples

A.Utilisation de sys.dm_tran_locks avec d'autres outils

L'exemple suivant fonctionne dans un scénario dans lequel une mise à jour est bloquée par une autre transaction. sys.dm_tran_locks et d'autres outils fournissent des informations sur les ressources de verrouillage.

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

La requête suivante affiche des informations sur les verrous. La valeur de <dbid> doit être remplacée par la valeur database_id de 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>

La requête suivante retourne des informations d'objet à l'aide de la valeur resource_associated_entity_id issue de la requête précédente. Cette requête doit être exécutée alors que vous êtes connecté à la base de données qui contient l'objet.

SELECT object_name(object_id), *
    FROM sys.partitions
    WHERE hobt_id=<resource_associated_entity_id>

La requête suivante affiche des informations de blocage.

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;

Libérez les ressources en annulant les transactions.

-- Session 1
ROLLBACK;
GO

-- Session 2
ROLLBACK;
GO

B.Liaison des informations de session avec des threads du système d'exploitation

L'exemple suivant retourne des informations qui associent un ID de session à l'ID d'un thread Windows. Il est possible de surveiller les performances d'un thread dans l'Analyseur de performances Windows. Cette requête ne retourne pas des ID de sessions en veille.

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

Voir aussi

Référence

sys.dm_tran_database_transactions (Transact-SQL)

Fonctions et vues de gestion dynamique (Transact-SQL)

Fonctions et vues de gestion dynamique relatives aux transactions (Transact-SQL)