Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Entrepôt dans Microsoft Fabric
Base de données SQL dans Microsoft Fabric
Retourne des informations sur les ressources actives du gestionnaire de verrous dans SQL Server. 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.
Remarque
Pour appeler cela à partir d’Azure Synapse Analytics ou du système de plateforme Analytics (PDW), utilisez le nom sys.dm_pdw_nodes_tran_locks. Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.
| Nom de la colonne | Type de données | Description |
|---|---|---|
resource_type |
nvarchar(60) | Représente le type de ressource. La valeur peut être : DATABASEFILEOBJECTPAGEKEYEXTENTRID (ID de rangée)APPLICATIONMETADATAHOBT (Tas ou arbre B)ALLOCATION_UNITXACT (Transaction)OIB (Compilation d’index en ligne)ROW_GROUP |
resource_subtype |
nvarchar(60) | Représente un sous-type de resource_type. L’acquisition d’un verrou de sous-type sans contenir de verrou non sous-typé du type parent est techniquement valide. Les sous-types différents ne sont pas en conflit entre eux ou avec le type parent non sous-typé. 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. Cela peut être un ID d’objet, HoBt un ID ou un ID d’Unité d’Allocation, selon le type de ressource. |
resource_lock_partition |
Int | ID de la partition de verrou pour une ressource de verrou partitionnée. La valeur des ressources de verrou nonpartitionnée 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é. NULL = aucun accès n'est accordé à la ressource. Sert d'espace réservé. Sch-S (Stabilité du schéma) = Garantit qu’un élément de schéma, tel qu’une table ou un index, n’est pas supprimé alors qu’une session détient un verrou de stabilité de schéma sur l’élément de schéma.Sch-M (Modification de schéma) = Doit être détenue par toute session souhaitant modifier le schéma de la ressource spécifiée. Garantit qu'aucune autre session ne fait référence à l'objet indiqué.S (Partagé) = La session de détention bénéficie d’un accès partagé à la ressource.U (Mise à jour) = Indique un verrouillage de mise à jour acquis sur des ressources qui pourraient éventuellement être mises à jour. Utilisé pour empêcher l'occurrence d'une forme de blocage courante qui apparaît lorsque plusieurs sessions verrouillent les ressources pour une mise à jour potentielle ultérieure.X (Exclusif) = La session de détention bénéficie d’un accès exclusif à la ressource.IS (Intention partagée) = Indique l’intention de placer des verrous S sur une ressource subordonnée dans la hiérarchie des verrous.IU (Mise à jour d’intention) = Indique l’intention de placer des verrous U sur une ressource subordonnée dans la hiérarchie des verrous.IX (Exclusivité à l’intention) = Indique l’intention de placer X verrous sur une ressource subordonnée dans la hiérarchie des verrous.SIU (Mise à jour de l’intention partagée) = Indique un accès partagé à une ressource dans le but d’acquérir des verrous de mise à jour sur des ressources subordonnées dans la hiérarchie de verrous.SIX (Exclusive à l’intention partagée) = Indique un accès partagé à une ressource dans le but d’acquérir des verrous exclusifs sur des ressources subordonnées dans la hiérarchie de verrouillage.UIX (Exclusive à l’intention de mise à jour) = Indique une retenue de verrouillage de mise à jour sur une ressource dans l’intention d’acquérir des verrous exclusifs sur des ressources subordonnées dans la hiérarchie de verrous.BU = Utilisé par des opérations en masse.RangeS_S (Key-Range partagée et verrouillage de ressource partagée) = Indique un balayage par distance sérialisable.RangeS_U (Shared Key-Range et verrouillage de ressource de mise à jour) = Indique le balayage de mise à jour sérialisable.RangeI_N (Insérer Key-Range et verrouillage de ressource nulle) = Utilisé pour tester les plages avant d’insérer une nouvelle clé dans un index.RangeI_S = Key-Range Verrou de conversion, créé par un chevauchement des RangeI_N verrous et S .RangeI_U = Key-Range Verrou de conversion, créé par un chevauchement des verrous RangeI_N et U.RangeI_X = Key-Range Verrou de conversion, créé par un chevauchement des RangeI_N verrous et X .RangeX_S = Key-Range Verrou de conversion, créé par un chevauchement de RangeI_N et RangeS_S. RangeS_S.RangeX_U = Key-Range Verrou de conversion, créé par un chevauchement des RangeI_N verrous et RangeS_U .RangeX_X (Key-Range exclusive et verrouillage exclusif de ressources) = Il s’agit d’un verrou de conversion utilisé lors de la mise à jour d’une clé dans une plage. |
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 GRANTED, CONVERT, WAIT, LOW_PRIORITY_CONVERT, LOW_PRIORITY_WAIT ou ABORT_BLOCKERS. Pour plus d’informations sur les attentes de faible priorité et les bloqueurs d’abandon, voir la section low_priority_lock_wait de ALTER INDEX (Transact-SQL). |
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 |
session_id qui possède actuellement cette demande. Le propriétaire session_id peut changer pour les transactions distribuées et liées. Une valeur indiquant -2 que la requête appartient à une transaction distribuée orpheline. Une valeur indiquant -3 que la requête appartient à une transaction de récupération différée, telle qu’une transaction pour laquelle une restauration a été différée lors de la récupération, car la restauration n’a pas pu être effectuée avec succès. |
request_exec_context_id |
int | ID du contexte d'exécution du processus actuellement propriétaire de cette demande. |
request_request_id |
int |
request_id (ID de lot) du processus qui possède actuellement cette demande. Cette valeur change à chaque fois que la connexion active Multiple Active Result Set (MARS) pour 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 les suivantes :TRANSACTION = La requête appartient à une transaction.CURSOR = La requête est possédée par un curseur.SESSION = La requête appartient à une session utilisateur.SHARED_TRANSACTION_WORKSPACE = La requête appartient à la partie partagée de l’espace de travail transactionnel.EXCLUSIVE_TRANSACTION_WORKSPACE = La requête appartient à la partie exclusive de l’espace de travail transactionnel.NOTIFICATION_OBJECT= La requête appartient à un composant interne de SQL Server. 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.Remarque : 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 le propriétaire de la requête, request_owner_id a l’une des valeurs suivantes :
|
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 resource_address colonne dans sys.dm_os_waiting_tasks. |
pdw_node_id |
int | Identificateur du nœud sur lequel cette distribution est activée. S’applique à : Azure Synapse Analytics, Analytics Platform System (PDW) |
Autorisations
Sur SQL Server et SQL Managed Instance, sys.dm_tran_locks cela nécessite VIEW SERVER STATE une autorisation.
Sur les objectifs de service SQL Database Basic, S0 et S1, et pour les bases de données dans les pools élastiques, le compte d’administration du serveur, le compte d’administration Microsoft Entra ou l’appartenance dans ##MS_ServerStateReader## au rôle de serveur est requis. Sur tous les autres objectifs de service SQL Database, l’autorisation VIEW DATABASE STATE sur la base de données ou l’appartenance au rôle serveur ##MS_ServerStateReader## est requise.
Dans SQL Analytics endpoint et Warehouse dans Microsoft Fabric, l’appartenance au rôle Viewer workspace est la permission minimale nécessaire pour visualiser sys.dm_tran_locks.
Autorisations pour SQL Server 2022 (et versions plus récentes)
Dans SQL Server 2022 et versions ultérieures, il sys.dm_tran_locks faut VIEW SERVER PERFORMANCE STATE obtenir une autorisation 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. Les types de requêtes en attente suivants sont retournés par la request_status colonne :
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é qu’elles sys.dm_tran_locks sont remplies à partir de structures de données du gestionnaire de verrous internes, la maintenance de ces informations n’ajoute pas de surcharge supplémentaire au 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. Les applications qui interrogent cette vue peuvent rencontrer des performances imprévisibles en raison de la nature de la protection de l’intégrité des structures du gestionnaire de verrous. 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 :
SET TRANSACTION ISOLATION LEVELpour spécifier le niveau de verrouillage pour une session. Pour plus d’informations, consultez SET TRANSACTION ISOLATION LEVEL (Transact-SQL).La table de verrouillage suggère de spécifier le niveau de verrouillage pour une référence individuelle d’une table dans une
FROMproposition. Pour connaître la syntaxe et les restrictions, consultez Indicateurs de table (Transact-SQL).
Une ressource en cours d’exécution sous un seul session_id peut avoir plusieurs verrous accordés. Différentes entités qui s’exécutent sous une session peuvent chacune posséder un verrou sur la même ressource, et les informations sont affichées dans les request_owner_type colonnes request_owner_id retournées par sys.dm_tran_locks. Si plusieurs instances de la même request_owner_type instance existent, la request_owner_id colonne est utilisée pour distinguer chaque instance. Pour les transactions distribuées, les request_owner_type colonnes et les request_owner_guid colonnes affichent les différentes informations d’entité.
Par exemple, session S1 possède un verrou partagé sur Table1; et la transaction T1, qui s’exécute sous session S1, possède également un verrou partagé sur Table1. Dans ce cas, la resource_description colonne retournée par sys.dm_tran_locks deux instances de la même ressource. La request_owner_type colonne affiche une instance en tant que session et l’autre en tant que transaction. En outre, la resource_owner_id colonne a des valeurs 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 qui ne sont pas associées à une session_id valeur sont des transactions orphelines et sont affectées à la session_id valeur de -2. Pour plus d’informations, consultez KILL (Transact-SQL).
Verrous
Des verrous sont placés sur les ressources SQL Server , telles que les lignes lues ou modifiées lors d'une transaction, pour empêcher d'autres transactions d'utiliser simultanément les ressources. Par exemple, si un verrou exclusif (X) est mis en place dans une ligne de table par une transaction, aucune autre transaction ne peut modifier cette ligne jusqu'à ce que le verrou soit débloqué. Un nombre minimal de verrous favorise la concurrence, ce qui peut améliorer les performances.
Détails de la ressource
Le tableau suivant répertorie les ressources représentées dans la resource_associated_entity_id colonne.
| 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 dans une 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 objet |
PAGE |
Représente une seule page dans un fichier de données. |
HoBt ID. Cette valeur correspond à sys.partitions.hobt_id. L’ID HoBt n’est pas toujours disponible pour les ressources PAGE car il s’agit d’informations HoBt supplémentaires que l’appelant peut fournir, et tous les appelants ne peuvent pas fournir ces informations. |
KEY |
Représente une ligne dans un index. |
HoBt ID. 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. |
HoBt ID. Cette valeur correspond à sys.partitions.hobt_id. L’ID HoBt n’est pas toujours disponible pour les ressources RID car il s’agit d’informations HoBt supplémentaires que l’appelant peut fournir, et tous les appelants ne peuvent pas 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. |
HoBt ID. Cette valeur correspond à sys.partitions.hobt_id. |
OIB |
Représente l’index en ligne (re)build. |
HoBt ID. 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. |
ROW_GROUP |
Représente un groupe de lignes columnstore. | |
XACT |
Représente une transaction. Se produit lorsque le verrouillage optimisé est activé. | Il existe deux scénarios : Scénario 1 (propriétaire) - Type de ressource : XACT.- Description de la ressource : Lorsqu’un TID verrou est maintenu, le resource_description est la XACT ressource.- ID d’entité associé à la ressource : resource_associated_entity_id est 0.Scénario 2 (Serveur) - Type de ressource : XACT.- Description de la ressource : lorsqu’une demande attend un verrou TID, il resource_description s’agit de la XACT ressource suivie de la ressource sous-jacente KEY ou RID de la ressource.- ID d’entité associée à la ressource : resource_associated_entity_id est l’ID sous-jacent HoBt . |
Remarque
De manière générale, la documentation SQL Server utilise le terme B-tree en référence aux index. Dans les index rowstore, le moteur de base de données implémente une structure B+. Cela ne s’applique pas aux index columnstore ou aux index sur les tables à mémoire optimisée. Pour plus d’informations, consultez le Guide de conception et d’architecture d’index SQL Server et Azure SQL.
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 prioritaires 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 de gouverneur de ressources telles que 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 resource_description colonne pour chaque type de ressource.
| Ressource | Format | Description |
|---|---|---|
DATABASE |
Non applicable | L’ID de base de données est déjà disponible dans la resource_database_id colonne. |
FILE |
<file_id> |
ID du fichier représenté par cette ressource. |
OBJECT |
<object_id> |
ID de l'objet représenté par cette ressource. Cet objet peut être n’importe quel objet répertorié dans sys.objects, pas seulement 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_files> |
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. Si l’ID d’objet associé est 99, cette ressource représente l’un des huit emplacements de page mixte sur la première page IAM d’une chaîne IAM. |
APPLICATION |
<DbPrincipalId>:<up to 32 characters>:(<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, seuls deux caractères peuvent être affichés en raison de la chaîne complète qui 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 |
HoBt ID est inclus comme le resource_associated_entity_idfichier . |
ALLOCATION_UNIT |
Non applicable | L’ID d’unité d’allocation est inclus en tant que resource_associated_entity_id. |
XACT |
<dbid>:<XdesId low>:<XdesId high> |
La TID ressource (ID de transaction). Se produit lorsque le verrouillage optimisé est activé. |
XACT KEY |
[XACT <dbid>:<XdesId low>:<XdesId High>] KEY (<hash_value>) |
La ressource sous-jacente que la transaction attend, avec un objet index KEY . Se produit lorsque le verrouillage optimisé est activé. |
XACT RID |
[XACT <dbid>:<XdesId low>:<XdesId High>] RID (<file_id>:<page_in_file>:<row_on_page>) |
La ressource sous-jacente sur laquelle la transaction est en attente, avec un objet tas RID . Se produit lorsque le verrouillage optimisé est activé. |
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
R. Utiliser 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. En utilisant sys.dm_tran_locks et d’autres outils, des informations sur le verrouillage des ressources sont fournies.
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 les informations de verrouillage. La valeur pour <dbid> laquelle doit être remplacée par la valeur de 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>;
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 montre les informations bloquantes.
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. Lier des informations de session aux threads du système d’exploitation
L’exemple suivant retourne des informations qui associent un session_id ID de thread Windows. Il est possible de surveiller les performances d'un thread dans l'Analyseur de performances Windows. Cette requête ne retourne pas une session_id requête actuellement 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