Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
Lager i Microsoft Fabric
SQL-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:
SÄTT TRANSAKTIONSISOLERINGSNIVÅN för att specificera låsningsnivån för en session. Mer information finns i ANGE TRANSAKTIONSISOLERINGSNIVÅ (Transact-SQL).
Låsningstabellen antyder att man specificerar låsningsnivån för en individuell referens i en tabell i en FROM-klausul. För syntax och begränsningar, se Table Hints (Transact-SQL).
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
B. Länka sessionsinformation till trådar för operativsystemet
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