sys.dm_tran_locks (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)Lager i Microsoft FabricSQL-databas i Microsoft Fabric

Returnerar information om för närvarande aktiva låshanteringsresurser i SQL Server. Varje rad representerar en för närvarande aktiv begäran till låshanteraren om ett lås som har beviljats eller väntar på att beviljas.

Kolumnerna i resultatuppsättningen är indelade i två huvudgrupper: resurs och begäran. Resursgruppen beskriver resursen där låsförfrågan görs, och förfrågningsgruppen beskriver låsförfrågan.

Anmärkning

Om du vill anropa detta från Azure Synapse Analytics eller Analytics Platform System (PDW) använder du namnet sys.dm_pdw_nodes_tran_locks. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Kolumnnamn Datatyp Description
resource_type nvarchar(60) Representerar resurstypen. Värdet kan vara:

DATABAS

FIL

OBJECT

SIDA

NYCKEL

UTSTRÄCKNING

RID (Rad-ID)

TILLÄMPNING

METADATA

HOBT (Heap eller B-träd)

ALLOCATION_UNIT

XACT (Transaktion)

OIB (Online-indexbyggnation)

ROW_GROUP
resource_subtype nvarchar(60) Representerar en deltyp av resource_type. Att skaffa ett subtyplås utan att hålla ett icke-subtypat lås av föräldratypen är tekniskt giltigt. Olika undertyper krockar inte med varandra eller med den icke-undertypade föräldratypen. Alla resurstyper har inte undertyper.
resource_database_id int ID för databasen under vilken denna resurs är placerad. Alla resurser som hanteras av låshanteraren är begränsade av databasens ID.
resource_description nvarchar(256) Beskrivning av resursen som endast innehåller information som inte finns tillgänglig från andra resurskolumner.
resource_associated_entity_id bigint ID för entiteten i en databas som en resurs är kopplad till. Detta kan vara ett objekt-ID, HOBT-ID eller ett Allocation Unit-ID, beroende på resurstypen.
resource_lock_partition Int ID för låspartitionen för en partitionerad låsresurs. Värdet för icke-partitionerade låsresurser är 0.
request_mode nvarchar(60) Förfrågans sätt. För givna önskemål är detta det beviljade läget; För väntande förfrågningar är detta det läge som efterfrågas.

NULL = Ingen åtkomst ges till resursen. Fungerar som en platshållare.

Sch-S (Schemastabilitet) = Säkerställer att ett schemaelement, såsom en tabell eller index, inte släpps medan någon session håller ett schemastabilitetslås på schemaelementet.

Sch-M (Schema modifiering) = Måste hållas av varje session som vill ändra schemat för den angivna resursen. Säkerställer att inga andra sessioner refererar till det angivna objektet.

S (Delat) = Innehavssessionen beviljas delad åtkomst till resursen.

U (Update) = Indikerar ett uppdateringslås som erhållits på resurser som eventuellt kan uppdateras. Den används för att förhindra en vanlig form av deadlock som uppstår när flera sessioner låser resurser för eventuell framtida uppdatering.

X (Exklusiv) = Den innehavande sessionen ges exklusiv tillgång till resursen.

IS (Intent Shared) = Indikerar avsikten att placera S-lås på någon underordnad resurs i låshierarkin.

IU (Intent Update) = Indikerar avsikten att placera U-lås på någon underordnad resurs i låshierarkin.

IX (Avsiktsmässig exklusiv) = Indikerar avsikten att placera X lås på någon underordnad resurs i låshierarkin.

SIU (Shared Intent Update) = Indikerar delad åtkomst till en resurs med avsikt att förvärva uppdateringslås på underordnade resurser i låshierarkin.

SIX (Shared Intent Exclusive) = Indikerar delad åtkomst till en resurs med avsikt att förvärva exklusiva lås på underordnade resurser i låshierarkin.

UIX (Update Intent Exclusive) = Indikerar ett uppdateringslås på en resurs med avsikt att få exklusiva lås på underordnade resurser i låshierarkin.

BU = Används av bulkoperationer.

RangeS_S (Delad Key-Range och delad resurslåsning) = Indikerar serialiserbar räckviddsskanning.

RangeS_U (Delad Key-Range och Uppdateringsresurslås) = Indikerar serialiserbar uppdateringsskanning.

RangeI_N (Insert Key-Range and Null Resource Lock) = Används för att testa intervall innan en ny nyckel sätts in i ett index.

RangeI_S = Key-Range Konverteringslås, skapat genom en överlappning av RangeI_N- och S-lås.

RangeI_U = Key-Range Konverteringslås, skapat genom en överlappning av RangeI_N- och U-lås.

RangeI_X = Key-Range Konverteringslås skapad genom en överlappning av RangeI_N- och X-lås.

RangeX_S = Key-Range Konverteringslås, skapat genom en överlappning av RangeI_N och RangeS_S. Lås.

RangeX_U = Key-Range Konverteringslås, skapat genom en överlappning av RangeI_N och RangeS_U lås.

RangeX_X (Exklusivt Key-Range och Exklusivt resurslås) = Detta är ett konverteringslås som används vid uppdatering av en nyckel i ett intervall.
request_type nvarchar(60) Förfrågan. Värdet är LOCK.
request_status nvarchar(60) Nuvarande status för denna begäran. Möjliga värden är GRANTED, CONVERT, WAIT, LOW_PRIORITY_CONVERT, LOW_PRIORITY_WAIT eller ABORT_BLOCKERS. För mer information om lågprioriterade väntetider och avbrytningsblockerare, se avsnittet low_priority_lock_wait i ALTER INDEX (Transact-SQL).
request_reference_count smallint Returnerar ungefärligt antal gånger samma begärare har begärt denna resurs.
request_lifetime int Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
request_session_id int session_id som för närvarande äger denna begäran. Ägandet session_id kan ändras för distribuerade och bundna transaktioner. Ett värde på -2 indikerar att förfrågan tillhör en föräldralös distribuerad transaktion. Ett värde på -3 indikerar att begäran tillhör en uppskjuten återställningstransaktion, till exempel en transaktion där en återställning har skjutits upp vid återställning eftersom återställningen inte kunde slutföras framgångsrikt.
request_exec_context_id int Exekveringskontext-ID för processen som för närvarande äger denna begäran.
request_request_id int request_id (batch-ID) för processen som för närvarande äger denna begäran. Detta värde ändras varje gång den aktiva anslutningen Multiple Active Result Set (MARS) för en transaktion ändras.
request_owner_type nvarchar(60) Enhetstyp som äger begäran. Lock Manager-förfrågningar kan ägas av en mängd olika enheter. Möjliga värden är:

TRANSAKTION = Förfrågan ägs av en transaktion.

CURSOR = Begäran ägs av en cursor.

SESSION = Förfrågan ägs av en användarsession.

SHARED_TRANSACTION_WORKSPACE = Förfrågan ägs av den delade delen av transaktionsarbetsytan.

EXCLUSIVE_TRANSACTION_WORKSPACE = Förfrågan ägs av den exklusiva delen av transaktionsarbetsytan.

NOTIFICATION_OBJECT = Förfrågan ägs av en intern SQL Server-komponent. Denna komponent har bett låshanteraren att meddela den när en annan komponent väntar på att ta låset. Funktionen FileTable är en komponent som använder detta värde.

Not: Arbetsytor används invändigt för att hålla lås för menigbesök.
request_owner_id bigint ID på den specifika ägaren av denna förfrågan.

När en transaktion är ägare till förfrågan innehåller detta värde transaktions-ID:t.

När en FileTable är ägare till förfrågan request_owner_id har ett av följande värden:
request_owner_guid uniqueidentifier GUID för den specifika ägaren av denna förfrågan. Detta värde används endast av en distribuerad transaktion där värdet motsvarar MS DTC GUID för den transaktionen.
request_owner_lockspace_id nvarchar(32) Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte. Detta värde representerar lockspace-ID:t för begäraren. Lockspace-ID:t avgör om två begärare är kompatibla med varandra och kan beviljas lås i läge som annars skulle krocka med varandra.
lock_owner_address varbinary(8) Minnesadressen till den interna datastrukturen som används för att spåra denna förfrågan. Denna kolumn kan sammanfogas med resource_address kolumnen i sys.dm_os_waiting_tasks.
pdw_node_id int gäller för: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifieraren för noden som den här fördelningen är på.

Permissions

På SQL Server och SQL Managed Instance kräver VIEW SERVER STATE behörighet.

I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.

Behörigheter för SQL Server 2022 och senare

Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.

Anmärkningar

En beviljad begäran indikerar att ett lås har beviljats på en resurs till begäraren. En väntande begäran indikerar att begäran ännu inte har beviljats. Följande typer av vänteförfrågningar returneras av kolumnen request_status :

  • En konverteringsförfrågan indikerar att begäraren redan har beviljats en begäran om resursen och för närvarande väntar på en uppgradering av den ursprungliga begäran.

  • En status för vänteförfrågan indikerar att begäraren för närvarande inte har en beviljad begäran på resursen.

Eftersom sys.dm_tran_locks den fylls från interna låshanterardatastrukturer, tillför underhåll av denna information inte extra belastning till vanlig bearbetning. Materialisering av vyn kräver åtkomst till låshanterarens interna datastrukturer. Detta kan ha mindre effekter på den vanliga bearbetningen i servern. Dessa effekter bör vara omärkliga och endast påverka mycket använda resurser. Eftersom datan i denna vy motsvarar live lock manager-tillståndet kan datan ändras när som helst, och rader läggs till och tas bort när lås förvärvas och släpps. Applikationer som söker denna vy kan uppleva oförutsägbar prestanda på grund av att integriteten hos låshanterarstrukturer skyddas. Denna syn har ingen historisk information.

Två förfrågningar körs på samma resurs endast om alla resursgruppskolumner är lika.

Du kan styra låsningen av läsoperationer med följande verktyg:

En resurs som körs under ett session_id kan ha mer än ett beviljat lås. Olika enheter som körs under en session kan var och en äga ett lås på samma resurs, och informationen visas i request_owner_type och request_owner_id kolumnerna som returneras av sys.dm_tran_locks. Om flera instanser av samma request_owner_type existerar används kolumnen request_owner_id för att särskilja varje instans. För distribuerade transaktioner visar kolumnerna request_owner_type och kolumnerna request_owner_guid den olika enhetsinformationen.

Till exempel äger Session S1 ett delat lås på Table1; och transaktion T1, som körs under session S1, äger också ett delat lås på Table1. I detta fall visar kolumnen resource_description som returneras av sys.dm_tran_locks två instanser av samma resurs. Kolumnen request_owner_type visar en instans som en session och den andra som en transaktion. Dessutom har kolumnen resource_owner_id olika värden.

Flera markörer som körs under en session är omöjliga att skilja åt och behandlas som en enhet.

Distribuerade transaktioner som inte är kopplade till ett session_id värde är föräldralösa transaktioner och tilldelas session_id värdet .-2 Mer information finns i KILL (Transact-SQL).

Locks

Lås hålls på SQL Server-resurser, såsom rader som läses eller ändras under en transaktion, för att förhindra samtidig användning av resurser av olika transaktioner. Till exempel, om ett exklusivt (X) lås hålls på en rad inom en tabell av en transaktion, kan ingen annan transaktion ändra den raden förrän låset släpps. Att minimera lås ökar samtidigheten, vilket kan förbättra prestandan.

Resursinformation

Följande tabell listar de resurser som representeras i kolumnen resource_associated_entity_id .

Resurstyp Resursbeskrivning resource_associated_entity_id
DATABAS Representerar en databas. Ej tillämpligt
FIL Representerar en databasfil. Denna fil kan vara antingen en datafil eller en loggfil. Ej tillämpligt
OBJECT Representerar ett objekt i en databas. Detta objekt kan vara en datatabell, vy, lagrad procedur, utökad lagrad procedur eller vilket objekt som helst som har ett objekt-ID. Objekt-ID
SIDA Representerar en enda sida i en datafil. HoBt ID. Detta värde motsvarar sys.partitions.hobt_id. HoBt-ID:t är inte alltid tillgängligt för PAGE-resurser eftersom HoBt-ID:t är extra information som kan tillhandahållas av uppringaren, och inte alla uppringare kan lämna denna information.
NYCKEL Representerar en rad i ett index. HoBt ID. Detta värde motsvarar sys.partitions.hobt_id.
UTSTRÄCKNING Representerar en datafilsutsträckning. En utsträckning är en grupp om åtta sammanhängande sidor. Ej tillämpligt
RID Representerar en fysisk rad i en hög. HoBt ID. Detta värde motsvarar sys.partitions.hobt_id. HoBt-ID:t är inte alltid tillgängligt för RID-resurser eftersom HoBt-ID:t är extra information som kan lämnas av uppringaren, och inte alla uppringare kan lämna denna information.
TILLÄMPNING Representerar en applikationsspecificerad resurs. Ej tillämpligt
METADATA Representerar metadatainformation. Ej tillämpligt
HOBT Representerar en heap eller ett B-träd. Detta är de grundläggande tillgångsvägarna. HoBt ID. Detta värde motsvarar sys.partitions.hobt_id.
OIB Representerar online-index (re)build. HoBt ID. Detta värde motsvarar sys.partitions.hobt_id.
ALLOCATION_UNIT Representerar en mängd relaterade sidor, såsom en indexpartition. Varje allokeringsenhet täcker en enda Index Allocation Map (IAM)-kedja. Enhets-ID för tilldelning. Detta värde motsvarar sys.allocation_units.allocation_unit_id.
ROW_GROUP Representerar en kolumnlagrad radgrupp.
XACT Representerar en transaktion. Uppstår när optimerad låsning är aktiverad. Det finns två scenarier:

Scenario 1 (Ägare)
- Resurstyp: XACT.
- Resursbeskrivning: När ett TID-lås hålls är resursen resource_descriptionXACT .
- Resursassocierad entitets-ID: resource_associated_entity_id är 0.

Scenario 2 (Servitör)
- Resurstyp: XACT.
- Resursbeskrivning: När en förfrågan väntar på ett TID-lås, är resursen resource_descriptionXACT följt av den underliggande KEY eller RID resursen.
- Resursassocierad entitets-ID: resource_associated_entity_id är det underliggande HoBt-ID:t.

Anmärkning

I dokumentationen används termen B-träd vanligtvis som referens till index. I radlagringsindex implementerar databasmotorn ett B+-träd. Detta gäller inte för kolumnlagringsindex eller index i minnesoptimerade tabeller. Mer information finns i arkitekturen och designguiden för SQL Server och Azure SQL-index.

Följande tabell listar de deltyper som är kopplade till varje resurstyp.

ResourceSubType Synkroniserar
ALLOCATION_UNIT. BULK_OPERATION_PAGE Förallokerade sidor som används för bulkoperationer.
ALLOCATION_UNIT. PAGE_COUNT Statistik över sidantal av allokeringsenheter under uppskjutna droppoperationer.
DATABAS. BULKOP_BACKUP_DB Databasbackuper med bulkoperationer.
DATABAS. BULKOP_BACKUP_LOG Databaslogg-backuper med bulkoperationer.
DATABAS. CHANGE_TRACKING_CLEANUP Ändra spårningsuppgifter för städning.
DATABAS. CT_DDL DDL-operationer för att spåra ändringar på databas- och tabellnivå.
DATABAS. CONVERSATION_PRIORITY Service Broker konversationsprioritetsoperationer såsom CREATE BROKER PRIORITY.
DATABAS. DDL Data definition language (DDL)-operationer med filgruppsoperationer, såsom drop.
DATABAS. ENCRYPTION_SCAN TDE-krypteringssynkronisering.
DATABAS. PLANGUIDE Synkronisering av planguiden.
DATABAS. RESOURCE_GOVERNOR_DDL DDL-operationer för resursstyrande operationer såsom ALTER RESOURCE POOL.
DATABAS. KRYMPA Databasförminskningsoperationer.
DATABAS. START Används för synkronisering av databasstart.
FIL. KRYMPA Filförminskningsoperationer.
HOBT. BULK_OPERATION Heap-optimerade bulklastoperationer med samtidig skanning, under dessa isoleringsnivåer: snapshot, läs ocommitted och read committed med radversionering.
HOBT. INDEX_REORGANIZE Heap- eller indexomorganisationsoperationer.
OBJEKT. KOMPILERA Lagrad procedur kompilera.
OBJEKT. INDEX_OPERATION Indexoperationer.
OBJEKT. UPDSTATS Statistikuppdateringar på en tabell.
METADATA. FÖRSAMLING Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. ASSEMBLY_CLR_NAME Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. ASSEMBLY_TOKEN Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. ASYMMETRIC_KEY Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. REVISION Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. AUDIT_ACTIONS Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. AUDIT_SPECIFICATION Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. AVAILABILITY_GROUP Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. INTYG Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CHILD_INSTANCE Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. COMPRESSED_FRAGMENT Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. COMPRESSED_ROWSET Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CONVERSTATION_ENDPOINT_RECV Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CONVERSTATION_ENDPOINT_SEND Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CONVERSATION_GROUP Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CONVERSATION_PRIORITY Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. REFERENS Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CRYPTOGRAPHIC_PROVIDER Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DATA_SPACE Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DATABAS Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DATABASE_PRINCIPAL Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DB_MIRRORING_SESSION Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DB_MIRRORING_WITNESS Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DB_PRINCIPAL_SID Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SLUTPUNKT Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. ENDPOINT_WEBMETHOD Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. EXPR_COLUMN Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. EXPR_HASH Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. FULLTEXT_CATALOG Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. FULLTEXT_INDEX Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. FULLTEXT_STOPLIST Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. INDEX_EXTENSION_SCHEME Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. INDEXSTATS Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. INSTANTIATED_TYPE_HASH Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. MEDDELANDE Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. METADATA_CACHE Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. PARTITION_FUNCTION Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. PASSWORD_POLICY Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. BEHÖRIGHETER Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. PLAN_GUIDE Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. PLAN_GUIDE_HASH Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. PLAN_GUIDE_SCOPE Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. QNAME Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. QNAME_HASH Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. REMOTE_SERVICE_BINDING Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. VÄG Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SCHEMAT Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SECURITY_CACHE Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SECURITY_DESCRIPTOR Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SEKVENS Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SERVER_EVENT_SESSIONS Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SERVER_PRINCIPAL Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. TJÄNST Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SERVICE_BROKER_GUID Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SERVICE_CONTRACT Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SERVICE_MESSAGE_TYPE Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. STATISTIK Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SYMMETRIC_KEY Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. USER_TYPE Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA.XML_COLLECTION Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA.XML_KOMPONENT Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA.XML_INDEX_QNAME Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.

Följande tabell anger kolumnens format resource_description för varje resurstyp.

Resource Format Description
DATABAS Ej tillämpligt Databas-ID finns redan tillgängligt i kolumnen resource_database_id .
FIL <file_id> ID för filen som representeras av denna resurs.
OBJECT <object_id> ID för objektet som representeras av denna resurs. Detta objekt kan vara vilket objekt som helst som listas i sys.objects, inte bara en tabell.
SIDA <file_id>:<page_in_file> Representerar fil- och sid-ID för sidan som representeras av denna resurs.
NYCKEL <hash_value> Representerar en hash av nyckelkolumnerna från raden som representeras av denna resurs.
UTSTRÄCKNING <file_id>:<page_in_files> Representerar fil- och sid-ID för den omfattning som representeras av denna resurs. Extent-ID:t är detsamma som sid-ID för första sidan i extent.
RID <file_id>:<page_in_file>:<row_on_page> Representerar sid-ID och rad-ID för raden som representeras av denna resurs. Om det associerade objekt-ID:t är 99, representerar denna resurs en av de åtta blandade sidplatserna på den första IAM-sidan i en IAM-kedja.
TILLÄMPNING <DbPrincipalId>:<up to 32 characters>:(<hash_value>) Representerar ID:t för databasens principal som används för att begränsa denna applikationslåsresurs. Även inkluderade är upp till 32 tecken från resurssträngen som motsvarar denna applikationslåsresurs. I vissa fall kan endast två tecken visas eftersom hela strängen inte längre är tillgänglig. Detta beteende uppstår endast vid databasåterställningstiden för applikationslås som återhämtas som en del av återställningsprocessen. Hashvärdet representerar en hash av hela resurssträngen som motsvarar denna applikationslåsresurs.
HOBT Ej tillämpligt HoBt ID ingår som resource_associated_entity_id.
ALLOCATION_UNIT Ej tillämpligt Allocation Unit ID ingår som .resource_associated_entity_id
XACT <dbid>:<XdesId low>:<XdesId high> TID (transaktions-ID) resursen. Uppstår när optimerad låsning är aktiverad.
XACT-NYCKEL [XACT <dbid>:<XdesId low>:<XdesId High>] KEY (<hash_value>) Den underliggande resursen som transaktionen väntar på, med ett index KEY-objekt. Uppstår när optimerad låsning är aktiverad.
XACT RID [XACT <dbid>:<XdesId low>:<XdesId High>] RID (<file_id>:<page_in_file>:<row_on_page>) Den underliggande resursen som transaktionen väntar på, med ett heap-RID-objekt. Uppstår när optimerad låsning är aktiverad.
METADATA. FÖRSAMLING assembly_id = A Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. ASSEMBLY_CLR_NAME $qname_id = Q Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. ASSEMBLY_TOKEN assembly_id = A, $token_id Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. ASSYMMETRIC_KEY asymmetric_key_id = A Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. REVISION audit_id = A Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. AUDIT_ACTIONS device_id = D, major_id = M Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. AUDIT_SPECIFICATION audit_specification_id = A Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. AVAILABILITY_GROUP availability_group_id = A Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. INTYG certificate_id = C Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CHILD_INSTANCE $hash = H1:H2:H3 Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. COMPRESSED_FRAGMENT object_id = O , compressed_fragment_id = C Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. COMPRESSED_ROW object_id = O Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CONVERSTATION_ENDPOINT_RECV $hash = H1:H2:H3 Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CONVERSTATION_ENDPOINT_SEND $hash = H1:H2:H3 Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CONVERSATION_GROUP $hash = H1:H2:H3 Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CONVERSATION_PRIORITY conversation_priority_id = C Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. REFERENS credential_id = C Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. CRYPTOGRAPHIC_PROVIDER provider_id = P Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DATA_SPACE data_space_id = D Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DATABAS database_id = D Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DATABASE_PRINCIPAL principal_id = P Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DB_MIRRORING_SESSION database_id = D Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DB_MIRRORING_WITNESS $hash = H1:H2:H3 Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. DB_PRINCIPAL_SID $hash = H1:H2:H3 Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SLUTPUNKT endpoint_id = E Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. ENDPOINT_WEBMETHOD $hash = H1:H2:H3 Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. FULLTEXT_CATALOG fulltext_catalog_id = F Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. FULLTEXT_INDEX object_id = O Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. EXPR_COLUMN object_id = O, column_id = C Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. EXPR_HASH object_id = O, $hash = H Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. FULLTEXT_CATALOG fulltext_catalog_id = F Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. FULLTEXT_INDEX object_id = O Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. FULLTEXT_STOPLIST fulltext_stoplist_id = F Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. INDEX_EXTENSION_SCHEME index_extension_id = I Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. INDEXSTATS object_id = O, index_id eller stats_id = I Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. INSTANTIATED_TYPE_HASH user_type_id = U, hash = H Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. MEDDELANDE message_id = M Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. METADATA_CACHE $hash = H1:H2:H3 Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. PARTITION_FUNCTION function_id = F Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. PASSWORD_POLICY principal_id = P Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. BEHÖRIGHETER class = C Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. PLAN_GUIDE plan_guide_id = P Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. PLAN_GUIDE_HASH $hash = H1:H2:H3 Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. PLAN_GUIDE_SCOPE scope_id = S Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. QNAME $qname_id = Q Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. QNAME_HASH $qname_scope_id = Q, $qname_hash = H Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. REMOTE_SERVICE_BINDING remote_service_binding_id = R Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. VÄG route_id = R Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SCHEMAT schema_id = S Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SECURITY_CACHE $hash = H1:H2:H3 Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SECURITY_DESCRIPTOR sd_id = S Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SEKVENS $seq_type = S, object_id = O Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SERVER server_id = S Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SERVER_EVENT_SESSIONS event_session_id = E Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SERVER_PRINCIPAL principal_id = P Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. TJÄNST service_id = S Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SERVICE_BROKER_GUID $hash = H1:H2:H3 Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SERVICE_CONTRACT service_contract_id = S Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SERVICE_MESSAGE_TYPE message_type_id = M Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. STATISTIK object_id = O, stats_id = S Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. SYMMETRIC_KEY symmetric_key_id = S Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA. USER_TYPE user_type_id = U Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA.XML_COLLECTION xml_collection_id = X Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA.XML_KOMPONENT xml_component_id = X Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
METADATA.XML_INDEX_QNAME object_id = O, $qname_id = Q Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.

Examples

A. Använd sys.dm_tran_locks med andra verktyg

Följande exempel fungerar med ett scenario där en uppdateringsoperation blockeras av en annan transaktion. Genom att använda sys.dm_tran_locks och andra verktyg tillhandahålls information om låsningsresurser.

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;

Följande fråga visar låsinformation. Värdet för <dbid> bör ersättas med från database_idsys.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>;

Följande fråga returnerar objektinformation genom att använda resource_associated_entity_id från föregående fråga. Denna fråga måste köras medan du är ansluten till databasen som innehåller objektet.

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

Följande fråga visar blockeringsinformation.

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;

Frigör resurserna genom att rulla tillbaka transaktionerna.

-- Session 1
ROLLBACK;
GO

-- Session 2
ROLLBACK;
GO

Följande exempel ger information som kopplar a session_id till ett Windows-tråd-ID. Trådens prestanda kan övervakas i Windows Performance Monitor. Denna fråga returnerar inte en session_id som för närvarande är i viloläge.

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