Udostępnij za pomocą


sys.dm_tran_locks (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Magazyn w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zwraca informacje o obecnie aktywnych zasobach menedżera zamków w SQL Server. Każdy wiersz reprezentuje aktualnie aktywne żądanie do menedżera zamków dotyczące blokady, która została przyznana lub czeka na jej przyznanie.

Kolumny w zestawie wyników dzielą się na dwie główne grupy: zasoby i żądanie. Grupa zasobów opisuje zasób, na którym wykonywane jest żądanie blokady, a grupa żądań opisuje żądanie blokady.

Uwaga / Notatka

Aby wywołać to z usługi Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_tran_locks. Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.

Nazwa kolumny Typ danych Description
resource_type nvarchar(60) Reprezentuje typ zasobu. Wartość ta może wynosić:

DATABASE

PLIK

OBJECT

PAGE

KLUCZ

ROZCIĄGŁOŚĆ

RID (ID wiersza)

APLIKACJA

METADANE

HOBT (Heap lub B-tree)

ALLOCATION_UNIT

XACT (Transakcja)

OIB (Internetowy build indeksu)

ROW_GROUP
resource_subtype nvarchar(60) Reprezentuje podtyp .resource_type Uzyskanie blokady podtypu bez posiadania blokady typu nadrzędnego bez podtypu jest technicznie prawidłowe. Różne podtypy nie konfliktują ze sobą ani z typem nadarczym niepodtypowanym. Nie wszystkie typy zasobów mają podtypy.
resource_database_id int ID bazy danych, w ramach której ten zasób jest objęty. Wszystkie zasoby obsługiwane przez menedżera zamków są określane przez ID bazy danych.
resource_description nvarchar(256) Opis zasobu zawierającego wyłącznie informacje niedostępne w innych kolumnach zasobów.
resource_associated_entity_id bigint Identyfikator jednostki w bazie danych, z którą powiązany jest zasób. Może to być ID obiektu, ID HOBT lub ID jednostki alokacyjnej, w zależności od typu zasobu.
resource_lock_partition Int ID partycji blokady dla zasobu zamka partycjonowanego. Wartość dla zasobów zamka niepartycjonowanych wynosi .0
request_mode nvarchar(60) Tryb prośby. W przypadku spełnionych próśb jest to tryb przyznania; W przypadku żądań oczekiwania jest to tryb, który jest wymagany.

NULL = Brak dostępu do zasobu. Służy jako tymczasowa opcja.

Sch-S (Stabilność schematu) = Zapewnia, że element schematu, taki jak tabela czy indeks, nie zostanie usunięty, podczas gdy każda sesja posiada blokadę stabilności schematu na tym elemencie.

Sch-M (modyfikacja schematu) = Musi być posiadany przez każdą sesję, która chce zmienić schemat określonego zasobu. Zapewnia, że żadna inna sesja nie odwołuje się do wskazanego obiektu.

S (Współdzielony) = Sesja holdingowa otrzymuje współdzielony dostęp do zasobu.

U (Update) = Oznacza blokadę aktualizacji nabytą na zasobach, które mogą zostać ostatecznie zaktualizowane. Służy do zapobiegania powszechnemu zakleszczeniu, które występuje, gdy wiele sesji blokuje zasoby na ewentualne aktualizacje w przyszłości.

X (Wyłącznie) = Sesja holdingowa otrzymuje wyłączny dostęp do zasobu.

IS (Intent Shared) = Oznacza zamiar nałożenia blokad S na jakiś podrzędny zasób w hierarchii zamków.

IU (Intent Update) = Oznacza zamiar nałożenia blokad U na jakiś podrzędny zasób w hierarchii blokad.

IX (Intent Exclusive) = Oznacza zamiar nałożenia X blokad na jakiś podrzędny zasób w hierarchii zamków.

SIU (Shared Intent Update) = Oznacza współdzielony dostęp do zasobu z zamiarem uzyskania blokad aktualizacji na podrzędnych zasobach w hierarchii blokad.

SIX (Shared Intent Exclusive) = Oznacza współdzielony dostęp do zasobu z zamiarem nabycia wyłącznych blokad na podrzędnych zasobach w hierarchii zamków.

UIX (Update Intent Exclusive) = Oznacza blokadę aktualizacji na zasobie z zamiarem nabycia wyłącznych blokad na podrzędnych zasobach w hierarchii blokad.

BU = Wykorzystywane przez operacje masowe.

RangeS_S (Shared Key-Range i Shared Resource lock) = Wskazuje na serializowalne skanowanie zakresu.

RangeS_U (Współdzielony Key-Range i blokada zasobów aktualizacji) = Wskazuje na serializowalne skanowanie aktualizacji.

RangeI_N (Wstaw Key-Range i blokadę zasobu zerowego) = Używany do testowania zakresów przed wstawieniem nowego klucza do indeksu.

RangeI_S = Key-Range Blokada konwersji, utworzona przez nakładanie się zamków RangeI_N i S.

RangeI_U = Key-Range Blokada konwersji, utworzona przez nakładanie się blokad RangeI_N i U.

RangeI_X = Key-Range Blokada konwersji, utworzona przez nakładanie się zamków RangeI_N i X.

RangeX_S = Key-Range Blokada konwersji, utworzona przez nakładanie się RangeI_N i RangeS_S. Blokad.

RangeX_U = Key-Range Zamek konwersyjny, utworzony przez nakładanie się zamków RangeI_N i RangeS_U.

RangeX_X (Wyłączny Key-Range i Wyłączny Zamek Zasobów) = Jest to zamek konwersji używany podczas aktualizacji klucza w danym zakresie.
request_type nvarchar(60) Typ żądania. Wartość to LOCK.
request_status nvarchar(60) Aktualny status tej prośby. Możliwe wartości to GRANTED, CONVERT, WAIT, LOW_PRIORITY_CONVERT, LOW_PRIORITY_WAIT lub ABORT_BLOCKERS. Więcej informacji o niskich priorytetach oczekiwania i blokerach przerwania można znaleźć w sekcji low_priority_lock_waitALTER INDEX (Transact-SQL).
request_reference_count smallint Zwraca przybliżoną liczbę razy, ile ten sam żądający zażądał tego zasobu.
request_lifetime int Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
request_session_id int session_id Obecnie to właściciel tej prośby. Własność session_id może się zmieniać w przypadku transakcji rozproszonych i związanych. Wartość oznacza -2 , że żądanie należy do osieroconej transakcji rozproszonej. Wartość oznacza -3 , że żądanie należy do transakcji odroczonego odzyskania, na przykład transakcji, dla której cofnięcie zostało odroczone przy odzyskaniu, ponieważ cofnięcie nie mogło zostać pomyślnie zakończone.
request_exec_context_id int Identyfikator kontekstu wykonania procesu, który obecnie jest właścicielem tego żądania.
request_request_id int request_id (batch ID) procesu, który obecnie jest właścicielem tego żądania. Ta wartość zmienia się za każdym razem, gdy aktywne połączenie Multiple Active Result Set (MARS) dla transakcji się zmienia.
request_owner_type nvarchar(60) Typ podmiotu, który jest właścicielem żądania. Żądania menedżera zamków mogą być własnością różnych podmiotów. Dopuszczalne wartości:

TRANSAKCJA = Żądanie należy do transakcji.

KURSOR = Żądanie należy do kursora.

SESSION = Żądanie należy do sesji użytkownika.

SHARED_TRANSACTION_WORKSPACE = Żądanie należy do współdzielonej części przestrzeni roboczej transakcji.

EXCLUSIVE_TRANSACTION_WORKSPACE = Żądanie należy do wyłącznej części przestrzeni roboczej transakcji.

NOTIFICATION_OBJECT = Żądanie jest własnością wewnętrznego komponentu SQL Server. Ten komponent poprosił menedżera blokad o powiadomienie, gdy inny komponent czeka na przyjęcie zamka. Funkcja FileTable to komponent, który wykorzystuje tę wartość.

Nuta: Przestrzenie pracy są wykorzystywane wewnętrznie do przechowywania zamków podczas sesji z żołnierzami.
request_owner_id bigint Identyfikacja konkretnego właściciela tego zgłoszenia.

Gdy transakcja jest właścicielem żądania, ta wartość zawiera identyfikator transakcji.

Gdy FileTable jest właścicielem żądania, request_owner_id ma jedną z następujących wartości:
  • -4 : FileTable został zablokowany w bazie danych.
  • -3 : FileTable przyjęła blokadę tabeli.
  • Inna wartość : Wartość reprezentuje uchwyt pliku. Ta wartość pojawia się również jako fcb_id w widoku dynamicznego zarządzania sys.dm_filestream_non_transacted_handles (Transact-SQL).
request_owner_guid uniqueidentifier GUID konkretnego właściciela tego wniosku. Ta wartość jest używana tylko w transakcji rozproszonej, gdzie odpowiada MS DTC GUID dla tej transakcji.
request_owner_lockspace_id nvarchar(32) Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana. Ta wartość reprezentuje identyfikator lockspace osoby żądającej. ID lockspace określa, czy dwa wnioskodawcy są ze sobą kompatybilne i mogą otrzymać blokady w trybach, które w innym przypadku kolidowałyby ze sobą.
lock_owner_address varbinary(8) Adres pamięci wewnętrznej struktury danych, która służy do śledzenia tego żądania. Ta kolumna może być połączona z kolumną z .resource_addresssys.dm_os_waiting_tasks
pdw_node_id int Dotyczy do: Azure Synapse Analytics, Analytics Platform System (PDW)

Identyfikator węzła, w ramach którego znajduje się ta dystrybucja.

Permissions

W programie SQL Server i usłudze SQL Managed Instance wymagane jest VIEW SERVER STATE uprawnienie.

W przypadku celów usługi SQL Database Basic, S0 i S1 oraz baz danych w elastycznych pulach wymagane jest konto administratora serwera , konto administratora firmy Microsoft Entra lub członkostwo w ##MS_ServerStateReader##roli serwera . We wszystkich innych celach usługi SQL Database wymagane VIEW DATABASE STATE jest uprawnienie do bazy danych lub członkostwo w ##MS_ServerStateReader## roli serwera.

Uprawnienia dla programu SQL Server 2022 i nowszych

Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.

Uwagi

Status przyznanego żądania oznacza, że żądającemu została przyznana blokada na zasob. Żądanie oczekujące oznacza, że nie zostało ono jeszcze zatwierdzone. Kolumna request_status zwraca następujące typy żądań oczekiwania:

  • Status żądania konwersji oznacza, że wnioskujący już otrzymał żądanie dla zasobu i obecnie czeka na przyzwolenie na aktualizację początkowego żądania.

  • Status żądania oczekiwania oznacza, że wnioskodawca nie posiada obecnie przyznanego żądania na tym zasobie.

Ponieważ sys.dm_tran_locks są one wypełniane z wewnętrznych struktur zarządzania blokadami, utrzymanie tych informacji nie dodaje dodatkowego narzutu w regularnym przetwarzaniu. Materializacja widoku wymaga dostępu do wewnętrznych struktur danych menedżera zamków. Może to mieć niewielki wpływ na regularne przetwarzanie na serwerze. Te efekty powinny być niezauważalne i dotyczyć tylko mocno zużywanych zasobów. Ponieważ dane w tym widoku odpowiadają stanowi menedżera blokad na żywo, mogą się one zmieniać w dowolnym momencie, a wiersze są dodawane i usuwane w miarę pozyskiwania i zwalniania blokad. Aplikacje zapytujące ten widok mogą doświadczać nieprzewidywalnej wydajności ze względu na ochronę integralności struktur menedżera zamków. Ten pogląd nie zawiera żadnych informacji historycznych.

Dwa żądania działają na tym samym zasobu tylko wtedy, gdy wszystkie kolumny grupy zasobów są równe.

Możesz kontrolować blokadę operacji odczytu, korzystając z następujących narzędzi:

Zasób działający pod jednym z nich session_id może mieć więcej niż jedną przyznaną blokadę. Różne podmioty działające w jednej sesji mogą posiadać blokadę tego samego zasobu, a informacje są wyświetlane w kolumnach i request_owner_typerequest_owner_id zwracanych przez sys.dm_tran_locks. Jeśli istnieje wiele instancji tego samego request_owner_type , kolumna request_owner_id służy do rozróżnienia każdej z nich. W przypadku transakcji rozproszonych, kolumny request_owner_typerequest_owner_guid i pokazują różne informacje o podmiotach.

Na przykład sesja S1 posiada współtworzoną blokadę ; Table1a transakcja T1, która jest prowadzona w ramach sesji S1, również posiada współdzieloną blokadę na Table1. W takim przypadku kolumna resource_description zwracana przez sys.dm_tran_locks pokazuje dwie instancje tego samego zasobu. Kolumna request_owner_type pokazuje jedną instancję jako sesję, a drugą jako transakcję. Kolumna resource_owner_id ma też inne wartości.

Wiele kursorów działających w jednej sesji jest nie do odróżnienia i traktowane jako jedna całość.

Transakcje rozproszone, które nie są powiązane z wartością session_id , są osierocone transakcjami i przypisane session_id są do -2wartości . Aby uzyskać więcej informacji, zobacz KILL (Transact-SQL).

Locks

Blokady są utrzymywane na zasobach SQL Server, takich jak wiersze odczytywane lub modyfikowane podczas transakcji, aby zapobiec jednoczesnemu wykorzystaniu zasobów przez różne transakcje. Na przykład, jeśli wyłączny (X) zamek jest utrzymywany na wierszu w tabeli przez transakcję, żadna inna transakcja nie może zmienić tego wiersza, dopóki blokada nie zostanie zwolniona. Minimalizacja blokad zwiększa współbieżność, co może poprawić wydajność.

Szczegóły zasobu

Poniższa tabela przedstawia zasoby reprezentowane w kolumnie resource_associated_entity_id .

Typ zasobu Opis zasobu resource_associated_entity_id
DATABASE Reprezentuje bazę danych. Nie dotyczy
PLIK Reprezentuje plik bazy danych. Ten plik może być zarówno plikiem danych, jak i loga. Nie dotyczy
OBJECT Reprezentuje obiekt w bazie danych. Obiekt ten może być tabelą danych, widokiem, procedurą przechowywaną, rozszerzoną procedurą przechowywaną lub dowolnym obiektem posiadającym identyfikator obiektu. Identyfikator obiektu
PAGE Reprezentuje pojedynczą stronę w pliku danych. Identyfikacja HoBt. Ta wartość odpowiada .sys.partitions.hobt_id Identyfikator HoBt nie zawsze jest dostępny dla zasobów PAGE, ponieważ to dodatkowe informacje, które może podać dzwoniący, a nie wszyscy mogą je udostępnić.
KLUCZ Reprezentuje wiersz w indeksie. Identyfikacja HoBt. Ta wartość odpowiada .sys.partitions.hobt_id
ROZCIĄGŁOŚĆ Reprezentuje zakres pliku danych. Rozszerzenie to grupa ośmiu stron ciągłych. Nie dotyczy
RID Reprezentuje fizyczny rząd w stercie. Identyfikacja HoBt. Ta wartość odpowiada .sys.partitions.hobt_id Identyfikator HoBt nie zawsze jest dostępny dla zasobów RID, ponieważ to dodatkowe informacje, które może podać dzwoniący, a nie wszyscy mogą je udostępnić.
APLIKACJA Reprezentuje zasób określony przez aplikację. Nie dotyczy
METADANE Reprezentuje informacje metadanych. Nie dotyczy
HOBT Reprezentuje kopcę lub drzewo B. To są podstawowe struktury ścieżek dojazdowych. Identyfikacja HoBt. Ta wartość odpowiada .sys.partitions.hobt_id
OIB Reprezentuje online index (re)build. Identyfikacja HoBt. Ta wartość odpowiada .sys.partitions.hobt_id
ALLOCATION_UNIT Reprezentuje zbiór powiązanych stron, takich jak partycja indeksowa. Każda jednostka alokacji obejmuje jeden łańcuch Map Alokacji Indeksu (IAM). Identyfikator jednostki alokacyjnej. Ta wartość odpowiada .sys.allocation_units.allocation_unit_id
ROW_GROUP Reprezentuje grupę wierszy columnstore.
XACT Reprezentuje transakcję. Dzieje się to, gdy zoptymalizowane blokowanie jest włączone. Istnieją dwa scenariusze:

Scenariusz 1 (Właściciel)
- Typ zasobu: XACT.
- Opis zasobu: Gdy blokada TID jest utrzymywana, jest resource_descriptionXACT to zasób.
- Identyfikator podmiotu powiązanego z zasobem: resource_associated_entity_id wynosi 0.

Scenariusz 2 (Kelner)
- Typ zasobu: XACT.
- Opis zasobu: Gdy żądanie czeka na blokadę TID, jest to resource_description zasób, XACT a następnie zasób bazowy KEY lub RID zasób.
- Identyfikator podmiotu powiązanego z zasobem: resource_associated_entity_id to bazowy identyfikator HoBt.

Uwaga / Notatka

W dokumentacji jest zwykle używany termin B-tree w odniesieniu do indeksów. W indeksach typu rowstore silnik bazy danych implementuje drzewo B+. Nie dotyczy to indeksów magazynu kolumn ani indeksów w tabelach zoptymalizowanych pod kątem pamięci. Aby uzyskać więcej informacji, zobacz architekturę i przewodnik projektowania indeksu SQL Server i Azure SQL.

Poniższa tabela przedstawia podtypy powiązane z każdym typem zasobu.

ResourceSubType Synchronizuje
ALLOCATION_UNIT. BULK_OPERATION_PAGE Strony z prealokacją używane do operacji masowych.
ALLOCATION_UNIT. PAGE_COUNT Statystyki liczby stron jednostek alokacyjnych podczas operacji odroczonego zrzutu.
BAZA DANYCH. BULKOP_BACKUP_DB Kopie zapasowe baz danych z operacjami masowymi.
BAZA DANYCH. BULKOP_BACKUP_LOG Kopie zapasowe logów bazowych z operacjami masowymi.
BAZA DANYCH. CHANGE_TRACKING_CLEANUP Zadania związane ze śledzeniem zmian i sprzątaniem.
BAZA DANYCH. CT_DDL Operacje DDL śledzące zmiany na poziomie baz danych i tabel.
BAZA DANYCH. CONVERSATION_PRIORITY Operacje priorytetowe rozmowy Service Brokera, takie jak CREATE BROKER PRIORITY.
BAZA DANYCH. DDL Operacje języka definicji danych (DDL) z operacjami grup plików, takimi jak drop.
BAZA DANYCH. ENCRYPTION_SCAN Synchronizacja szyfrowania TDE.
BAZA DANYCH. PLANGUIDE Synchronizacja przewodnika według planu.
BAZA DANYCH. RESOURCE_GOVERNOR_DDL Operacje DDL dla operacji zarządzających zasobami, takich jak ALTER RESOURCE POOL.
BAZA DANYCH. ZMNIEJSZYĆ Operacje kurczenia bazy danych.
BAZA DANYCH. STARTUP Używany do synchronizacji uruchamiania bazy danych.
PLIK. ZMNIEJSZYĆ Operacje zmniejszania plików.
HOBT. BULK_OPERATION Operacje masowego ładowania zoptymalizowanego przez heap z jednoczesnym skanowaniem, na tych poziomach izolacji: migawka, odczyt bez zatwierdzenia oraz zatwierdzenie odczytu przy użyciu wersjonowania wiersza.
HOBT. INDEX_REORGANIZE Operacje reorganizacji stosu lub indeksu.
SPRZECIWIAĆ SIĘ. KOMPILOWAĆ Kompilacja procedur przechowywanych.
SPRZECIWIAĆ SIĘ. INDEX_OPERATION Operacje indeksowe.
SPRZECIWIAĆ SIĘ. UPDSTATS Aktualizacje statystyk na tabeli.
METADANE. MONTAŻ Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. ASSEMBLY_CLR_NAME Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. ASSEMBLY_TOKEN Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. ASYMMETRIC_KEY Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. AUDYT Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. AUDIT_ACTIONS Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. AUDIT_SPECIFICATION Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. AVAILABILITY_GROUP Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CERTYFIKAT Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CHILD_INSTANCE Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. COMPRESSED_FRAGMENT Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. COMPRESSED_ROWSET Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CONVERSTATION_ENDPOINT_RECV Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CONVERSTATION_ENDPOINT_SEND Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CONVERSATION_GROUP Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CONVERSATION_PRIORITY Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. POŚWIADCZEŃ Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CRYPTOGRAPHIC_PROVIDER Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. DATA_SPACE Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. BAZA DANYCH Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. DATABASE_PRINCIPAL Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. DB_MIRRORING_SESSION Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. DB_MIRRORING_WITNESS Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. DB_PRINCIPAL_SID Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PUNKT KOŃCOWY Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. ENDPOINT_WEBMETHOD Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. EXPR_COLUMN Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. EXPR_HASH Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. FULLTEXT_CATALOG Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. FULLTEXT_INDEX Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. FULLTEXT_STOPLIST Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. INDEX_EXTENSION_SCHEME Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. INDEXSTATS Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. INSTANTIATED_TYPE_HASH Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. KOMUNIKAT Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. METADATA_CACHE Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PARTITION_FUNCTION Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PASSWORD_POLICY Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. UPRAWNIENIA Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PLAN_GUIDE Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PLAN_GUIDE_HASH Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PLAN_GUIDE_SCOPE Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. QNAME Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. QNAME_HASH Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. REMOTE_SERVICE_BINDING Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. TRASA Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SCHEMAT Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SECURITY_CACHE Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SECURITY_DESCRIPTOR Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. KOLEJNOŚĆ Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SERVER_EVENT_SESSIONS Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SERVER_PRINCIPAL Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. USŁUGA Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SERVICE_BROKER_GUID Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SERVICE_CONTRACT Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SERVICE_MESSAGE_TYPE Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. STATYSTYKI Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SYMMETRIC_KEY Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. USER_TYPE Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADATA.XML_KOLEKCJA Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADATA.XML_COMPONENT Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADATA.XML_INDEKS_QNAME Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.

Poniższa tabela przedstawia format kolumny resource_description dla każdego typu zasobu.

Resource Format Description
DATABASE Nie dotyczy Identyfikator bazy danych jest już dostępny w kolumnie resource_database_id .
PLIK <file_id> ID pliku reprezentowanego przez ten zasób.
OBJECT <object_id> ID obiektu reprezentowanego przez ten zasób. Ten obiekt może być dowolnym obiektem wymienionym w , sys.objectsa nie tylko tabelą.
PAGE <file_id>:<page_in_file> Reprezentuje plik i identyfikator strony strony reprezentowanej przez ten zasób.
KLUCZ <hash_value> Reprezentuje skrót kolumn klucza z wiersza reprezentowanego przez ten zasób.
ROZCIĄGŁOŚĆ <file_id>:<page_in_files> Reprezentuje plik i identyfikator strony w zakresie reprezentowanym przez ten zasób. ID zakresu jest takie samo jak identyfikator strony pierwszej strony w zakresie.
RID <file_id>:<page_in_file>:<row_on_page> Reprezentuje identyfikator strony i identyfikator wiersza reprezentowanego przez ten zasób. Jeśli powiązany identyfikator obiektu wynosi 99, ten zasób reprezentuje jeden z ośmiu mieszanych slotów stron na pierwszej stronie IAM łańcucha IAM.
APLIKACJA <DbPrincipalId>:<up to 32 characters>:(<hash_value>) Reprezentuje identyfikator zasady bazy danych używanej do zakresu tego zasobu blokady aplikacji. Zawarte są także do 32 znaków ze ciągu zasobu odpowiadającego temu zasobowi blokady aplikacji. W niektórych przypadkach wyświetlane są tylko dwa znaki, ponieważ cały ciąg nie jest już dostępny. To zachowanie występuje tylko w czasie odzyskiwania bazy danych dla blokad aplikacji, które są ponownie pozyskiwane w trakcie procesu odzyskiwania. Wartość skrótu reprezentuje skrót pełnego ciągu zasobu odpowiadającego temu zasobowi blokady aplikacji.
HOBT Nie dotyczy Identyfikator HoBt jest dołączony jako .resource_associated_entity_id
ALLOCATION_UNIT Nie dotyczy Identyfikator jednostki alokacyjnej jest uwzględniony jako .resource_associated_entity_id
XACT <dbid>:<XdesId low>:<XdesId high> Zasób TID (ID transakcji). Dzieje się to, gdy zoptymalizowane blokowanie jest włączone.
XACT KEY [XACT <dbid>:<XdesId low>:<XdesId High>] KEY (<hash_value>) Zasób bazowy, na którym transakcja czeka, z indeksem KEY obiektu. Dzieje się to, gdy zoptymalizowane blokowanie jest włączone.
XACT RID [XACT <dbid>:<XdesId low>:<XdesId High>] RID (<file_id>:<page_in_file>:<row_on_page>) Zasób bazowy, na którym transakcja czeka, wraz z obiektem RID w stercie. Dzieje się to, gdy zoptymalizowane blokowanie jest włączone.
METADANE. MONTAŻ assembly_id = A Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. ASSEMBLY_CLR_NAME $qname_id = Q Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. ASSEMBLY_TOKEN assembly_id = A, $token_id Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. ASSYMMETRIC_KEY asymmetric_key_id = A Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. AUDYT audit_id = A Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. AUDIT_ACTIONS device_id = D, major_id = M Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. AUDIT_SPECIFICATION audit_specification_id = A Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. AVAILABILITY_GROUP availability_group_id = A Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CERTYFIKAT certificate_id = C Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CHILD_INSTANCE $hash = H1:H2:H3 Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. COMPRESSED_FRAGMENT object_id = O , compressed_fragment_id = C Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. COMPRESSED_ROW object_id = O Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CONVERSTATION_ENDPOINT_RECV $hash = H1:H2:H3 Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CONVERSTATION_ENDPOINT_SEND $hash = H1:H2:H3 Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CONVERSATION_GROUP $hash = H1:H2:H3 Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CONVERSATION_PRIORITY conversation_priority_id = C Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. POŚWIADCZEŃ credential_id = C Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. CRYPTOGRAPHIC_PROVIDER provider_id = P Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. DATA_SPACE data_space_id = D Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. BAZA DANYCH database_id = D Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. DATABASE_PRINCIPAL principal_id = P Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. DB_MIRRORING_SESSION database_id = D Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. DB_MIRRORING_WITNESS $hash = H1:H2:H3 Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. DB_PRINCIPAL_SID $hash = H1:H2:H3 Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PUNKT KOŃCOWY endpoint_id = E Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. ENDPOINT_WEBMETHOD $hash = H1:H2:H3 Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. FULLTEXT_CATALOG fulltext_catalog_id = F Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. FULLTEXT_INDEX object_id = O Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. EXPR_COLUMN object_id = O, column_id = C Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. EXPR_HASH object_id = O, $hash = H Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. FULLTEXT_CATALOG fulltext_catalog_id = F Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. FULLTEXT_INDEX object_id = O Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. FULLTEXT_STOPLIST fulltext_stoplist_id = F Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. INDEX_EXTENSION_SCHEME index_extension_id = I Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. INDEXSTATS object_id = O index_id, lubstats_id = I Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. INSTANTIATED_TYPE_HASH user_type_id = U, hash = H Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. KOMUNIKAT message_id = M Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. METADATA_CACHE $hash = H1:H2:H3 Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PARTITION_FUNCTION function_id = F Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PASSWORD_POLICY principal_id = P Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. UPRAWNIENIA class = C Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PLAN_GUIDE plan_guide_id = P Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PLAN_GUIDE_HASH $hash = H1:H2:H3 Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. PLAN_GUIDE_SCOPE scope_id = S Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. QNAME $qname_id = Q Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. QNAME_HASH $qname_scope_id = Q, $qname_hash = H Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. REMOTE_SERVICE_BINDING remote_service_binding_id = R Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. TRASA route_id = R Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SCHEMAT schema_id = S Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SECURITY_CACHE $hash = H1:H2:H3 Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SECURITY_DESCRIPTOR sd_id = S Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. KOLEJNOŚĆ $seq_type = S, object_id = O Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SERWER server_id = S Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SERVER_EVENT_SESSIONS event_session_id = E Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SERVER_PRINCIPAL principal_id = P Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. USŁUGA service_id = S Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SERVICE_BROKER_GUID $hash = H1:H2:H3 Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SERVICE_CONTRACT service_contract_id = S Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SERVICE_MESSAGE_TYPE message_type_id = M Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. STATYSTYKI object_id = O, stats_id = S Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. SYMMETRIC_KEY symmetric_key_id = S Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADANE. USER_TYPE user_type_id = U Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADATA.XML_KOLEKCJA xml_collection_id = X Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADATA.XML_COMPONENT xml_component_id = X Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
METADATA.XML_INDEKS_QNAME object_id = O, $qname_id = Q Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.

Przykłady

A. Używaj sys.dm_tran_locks z innymi narzędziami

Poniższy przykład dotyczy sytuacji, w której operacja aktualizacji zostaje zablokowana przez inną transakcję. Dzięki wykorzystaniu sys.dm_tran_locks innych narzędzi dostarczane są informacje o zasobach blokujących.

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;

Następujące zapytanie wyświetla informacje o blokadzie. Wartość dla <dbid> należy zastąpić przez z 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>;

Następujące zapytanie zwraca informacje o obiekcie, używając resource_associated_entity_id z poprzedniego zapytania. To zapytanie musi zostać wykonane, gdy jesteś połączony z bazą danych zawierającą obiekt.

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

Poniższe zapytanie pokazuje informacje o blokowaniu.

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;

Zwolnij zasoby, cofając transakcje.

-- Session 1
ROLLBACK;
GO

-- Session 2
ROLLBACK;
GO

Poniższy przykład zwraca informację powiązaną session_id z identyfikatorem wątku Windows. Wydajność wątku można monitorować w Windows Performance Monitor. To pytanie nie zwraca , session_id który jest obecnie uśpiony.

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