Freigeben über


sys.dm_tran_locks (Transact-SQL)

Gibt Informationen zu derzeit aktiven Sperren-Manager-Ressourcen zurück. Jede Zeile stellt eine derzeit aktive Anforderung des Sperren-Managers für eine erteilte oder zu erteilende Sperre dar.

Die Spalten im Resultset sind in zwei Hauptgruppen unterteilt: Ressourcen und Anforderungen. Die Ressourcengruppe beschreibt die Ressource, für die die Sperranforderung erfolgt. Die Anforderungsgruppe beschreibt die Sperranforderung.

Spaltenname

Datentyp

Beschreibung

resource_type

nvarchar(60)

Stellt den Ressourcentyp dar. Die folgenden Werte sind möglich: DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICATION, METADATA, HOBT oder ALLOCATION_UNIT.

resource_subtype

nvarchar(60)

Stellt einen Untertyp von resource_type dar. Es ist technisch zulässig, eine Untertypsperre abzurufen, ohne dass eine Nicht-Untertypsperre des übergeordneten Typs vorhanden ist. Unterschiedliche Untertypen führen nicht zu Konflikten untereinander oder mit dem übergeordneten Typ des Nicht-Untertyps. Nicht alle Ressourcentypen weisen Untertypen auf.

resource_database_id

int

ID der Datenbank, zu deren Bereich diese Ressource gehört. Alle Ressourcen, die vom Sperren-Manager verarbeitet werden, erhalten die Datenbank-ID als Bereich.

resource_description

nvarchar(256)

Beschreibung der Ressource, die nur Informationen enthält, die in anderen Ressourcenspalten nicht verfügbar sind.

resource_associated_entity_id

bigint

ID der Entität in einer Datenbank, der eine Ressource zugeordnet ist. Hierbei kann es sich je nach Ressourcentyp um eine Objekt-ID, eine HoBt-ID oder eine Zuordnungseinheit-ID handeln.

resource_lock_partition

Int

ID der Sperrenpartition für eine partitionierte Sperrenressource. Nicht partitionierte Sperrenressourcen haben den Wert 0.

request_mode

nvarchar(60)

Der Anforderungsmodus. Für erteilte Anforderungen ist dies der erteilte Modus, für wartende Anforderungen ist dies der angeforderte Modus.

request_type

nvarchar(60)

Der Anforderungstyp. Der Wert ist LOCK.

request_status

nvarchar(60)

Aktueller Status dieser Anforderung. Mögliche Werte sind GRANTED, CONVERT oder WAIT.

request_reference_count

smallint

Gibt zurück, wie oft derselbe Anforderer diese Ressource ungefähr angefordert hat.

request_lifetime

int

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

request_session_id

int

Sitzungs-ID, der diese Anforderung derzeit gehört. Die Sitzungs-ID für den Besitzer kann sich für verteilte und gebundene Transaktionen ändern. Der Wert -2 gibt an, dass die Anforderung einer verwaisten verteilten Transaktion gehört. Der Wert -3 gibt an, dass die Anforderung zu einer verzögerten Wiederherstellungstransaktion gehört, wie z. B. eine Transaktion, für die ein Rollback bei der Wiederherstellung verzögert wurde, weil das Rollback nicht erfolgreich abgeschlossen werden konnte.

request_exec_context_id

int

Ausführungskontext-ID des Prozesses, der derzeit diese Anforderung besitzt.

request_request_id

int

Anforderungs-ID (Batch-ID) des Prozesses, der derzeit diese Anforderung besitzt. Dieser Wert wird jedes Mal geändert, wenn sich die aktive MARS-Verbindung (Multiple Active Result Set) für eine Transaktion ändert.

request_owner_type

nvarchar(60)

Entitätstyp, der die Anforderung besitzt. Sperren-Manager-Anforderungen können im Besitz einer Reihe von Entitäten sein. Folgende Werte sind möglich:

TRANSACTION = Der Besitzer der Anforderung ist eine Transaktion.

CURSOR = Der Besitzer der Anforderung ist ein Cursor.

SESSION = Der Besitzer der Anforderung ist eine Benutzersitzung.

SHARED_TRANSACTION_WORKSPACE = Der Besitzer der Anforderung ist der freigegebene Bereich des Transaktionsarbeitsbereichs.

EXCLUSIVE_TRANSACTION_WORKSPACE = Der Besitzer der Anforderung ist der exklusive Bereich des Transaktionsarbeitsbereichs.

HinweisHinweis
Arbeitsbereiche werden intern verwendet, um Sperren für eingetragene Sitzungen aufzunehmen.

request_owner_id

bigint

ID des Besitzers dieser Anforderung. Wird nur für Transaktionen verwendet, für die dies die Transaktions-ID ist.

request_owner_guid

uniqueidentifier

GUID des Besitzers dieser Anforderung. Wird nur von einer verteilten Transaktion verwendet, wobei der Wert dem MS DTC-GUID für diese Transaktion entspricht.

request_owner_lockspace_id

nvarchar(32)

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt. Dieser Wert stellt die Sperrenbereich-ID des Anforderers dar. Die Sperrenbereich-ID bestimmt, ob zwei Anforderer miteinander kompatibel sind und ob ihnen Sperren in Modi erteilt werden können, die ansonsten zu Konflikten miteinander führen würden.

lock_owner_address

varbinary(8)

Speicheradresse der internen Datenstruktur, mit der diese Anforderung nachverfolgt wird. Die Spalte kann mit der resource_address-Spalte in sys.dm_os_waiting_tasks verknüpft werden.

Berechtigungen

Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.

Hinweise

Der Anforderungsstatus GRANTED gibt an, dass dem Anforderer für eine Ressource eine Sperre erteilt wurde. Der Anforderungsstatus WAITING gibt an, dass die Anforderung noch nicht erteilt wurde. Die folgenden Anforderungstypen für WAITING werden von der request_status-Spalte zurückgegeben:

  • Der Anforderungsstatus CONVERT gibt an, dass dem Anforderer bereits eine Anforderung für die Ressource erteilt wurde und dass er derzeit darauf wartet, dass ein Update für die ursprüngliche Anforderung erteilt wird.

  • Der Anforderungsstatus WAIT gibt an, dass der Anforderer derzeit keine erteilte Anforderung für die Ressource besitzt.

sys.dm_tran_locks wird aus internen Sperren-Manager-Datenstrukturen aufgefüllt. Deshalb fällt durch die Verwaltung dieser Informationen kein zusätzlicher Aufwand für die reguläre Verarbeitung an. Durch das Materialisieren der Sicht ist der Zugriff auf die internen Strukturen des Sperren-Managers erforderlich. Dies kann die reguläre Verarbeitung auf dem Server geringfügig beeinträchtigen. Diese Auswirkungen sollten nicht bemerkbar sein und sollten nur stark ausgelastete Ressourcen betreffen. Die Daten in dieser Sicht entsprechen dem Livestatus des Sperren-Managers. Deshalb können sie jederzeit geändert werden, und Zeilen werden hinzugefügt und entfernt, wenn Sperren eingerichtet und aufgehoben werden. Diese Sicht weist keine Verlaufsinformationen auf.

Zwei Anforderungen verwenden nur dann dieselbe Ressource, wenn alle Ressourcengruppenspalten identisch sind.

Sie können das Sperren von Lesevorgängen mit folgenden Tools steuern:

  • SET TRANSACTION ISOLATION LEVEL, um die Ebene von Sperren für eine Sitzung anzugeben. Weitere Informationen finden Sie unter SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

  • Sperren von Tabellenhinweisen, um die Ebene von Sperren für einen einzelnen Verweis einer Tabelle in einer FROM-Klausel anzugeben. Informationen zu Syntax und Einschränkungen finden Sie unter Tabellenhinweise (Transact-SQL).

Eine Ressource, die unter einer einzelnen Sitzungs-ID ausgeführt wird, kann mehrere erteilte Sperren aufweisen. Unterschiedliche Entitäten, die unter einer Sitzung ausgeführt werden, können jeweils eine Sperre für dieselbe Ressource besitzen, und die Informationen werden in den Spalten request_owner_type und request_owner_id angezeigt, die von sys.dm_tran_locks zurückgegeben werden. Falls mehrere Instanzen mit demselben request_owner_type vorhanden sind, werden die einzelnen Instanzen mithilfe der request_owner_id-Spalte unterschieden. Für verteilte Transaktionen zeigen die Spalten request_owner_type und request_owner_guid die unterschiedlichen Entitätsinformationen an.

Beispielsweise besitzt die Sitzung S1 eine freigegebene Sperre für Tabelle1, während die Transaktion T1, die unter der Sitzung S1 ausgeführt wird, ebenfalls eine freigegebene Sperre für Tabelle1 besitzt. In diesem Fall enthält die resource_description-Spalte, die von sys.dm_tran_locks zurückgegeben wird, zwei Instanzen derselben Ressource. Die request_owner_type-Spalte zeigt eine Instanz als Sitzung und die andere Instanz als Transaktion an. Außerdem weist die resource_owner_id-Spalte unterschiedliche Werte auf.

HinweisHinweis

Mehrere Cursor, die unter einer Sitzung ausgeführt werden, können nicht unterschieden werden und werden als eine Einheit behandelt.

Weitere Informationen zu den von SQL Server Database Engine (Datenbankmodul) verwendeten Sperrtypen finden Sie unter Sperren im Datenbankmodul.

Verteilte Transaktionen, denen kein Sitzungs-ID-Wert zugeordnet ist, sind verwaiste Transaktionen. Diesen wird der Sitzungs-ID-Wert -2 zugewiesen. Weitere Informationen finden Sie unter KILL (Transact-SQL).

Ressourcendetails

In der folgenden Tabelle sind die Ressourcen aufgelistet, die in der resource_associated_entity_id-Spalte dargestellt sind.

Ressourcentyp

Ressourcenbeschreibung

Resource_associated_entity_id

DATABASE

Stellt eine Datenbank dar.

Nicht verfügbar

FILE

Stellt eine Datenbankdatei dar. Bei dieser Datei kann es sich entweder um eine Datendatei oder eine Protokolldatei handeln.

Nicht verfügbar

OBJECT

Stellt ein Datenbankobjekt dar. Bei diesem Objekt kann es sich um eine Datentabelle, eine Sicht, eine gespeicherte Prozedur, eine erweiterte gespeicherte Prozedur oder ein beliebiges Objekt mit einer Objekt-ID handeln.

ObjectID

PAGE

Stellt eine einzelne Seite in einer Datendatei dar.

HoBt-ID. Dieser Wert entspricht sys.partitions.hobt_id. Die HoBt-ID ist nicht immer für PAGE-Ressourcen verfügbar, weil es sich bei der HoBt-ID um zusätzliche Informationen handelt, die vom Aufrufer bereitgestellt werden können. Dabei sind nicht alle Aufrufer in der Lage, diese Informationen bereitzustellen.

KEY

Stellt eine Zeile in einem Index dar.

HoBt-ID. Dieser Wert entspricht sys.partitions.hobt_id.

EXTENT

Stellt einen Datendateiblock dar. Ein Block ist eine Gruppe von acht fortlaufenden Seiten.

Nicht verfügbar

RID

Stellt eine physikalische Zeile in einem Heap dar.

HoBt-ID. Dieser Wert entspricht sys.partitions.hobt_id. Die HoBt-ID ist nicht immer für RID-Ressourcen verfügbar, weil es sich bei der HoBt-ID um zusätzliche Informationen handelt, die vom Aufrufer bereitgestellt werden können. Dabei sind nicht alle Aufrufer in der Lage, diese Informationen bereitzustellen.

APPLICATION

Stellt eine in einer Anwendung angegebene Ressource dar.

Nicht verfügbar

METADATA

Stellt Metadateninformationen dar.

Nicht verfügbar

HOBT

Stellt einen Heap oder eine B-Struktur dar. Dies sind die grundlegenden Zugriffspfadstrukturen.

HoBt-ID. Dieser Wert entspricht sys.partitions.hobt_id.

ALLOCATION_UNIT

Stellt zusammenhängende Seiten dar, wie z. B. eine Indexpartition. Jede Zuordnungseinheit deckt eine einzelne IAM-Kette (Index Allocation Map) ab.

Zuordnungseinheit-ID. Dieser Wert entspricht sys.allocation_units.allocation_unit_id.

In der folgenden Tabelle sind die Untertypen für jeden Ressourcentyp aufgelistet.

ResourceSubType

Synchronisierte Vorgänge

DATABASE.BULKOP_BACKUP_DB

Datenbanksicherungen mit Massenvorgängen.

DATABASE.BULKOP_BACKUP_LOG

Datenbankprotokollsicherungen mit Massenvorgängen.

DATABASE.DDL

DDL-Vorgänge (Data Definition Language, Datendefinitionssprache) mit Dateigruppenvorgängen, z. B. Löschvorgängen.

DATABASE.STARTUP

Wird zur Synchronisierung des Datenbankstarts verwendet.

TABLE.UPDSTATS

Statistikaktualisierungen für eine Tabelle.

TABLE.COMPILE

Kompilierung gespeicherter Prozeduren.

TABLE.INDEX_OPERATION

Indexvorgänge

HOBT.INDEX_REORGANIZE

Vorgänge zur Heap- oder Indexneuorganisierung.

HOBT.BULK_OPERATION

Heapoptimierte Massenladevorgänge mit gleichzeitigen Scanvorgängen unter den folgenden Isolationsstufen: SNAPSHOT, READ UNCOMMITTED und READ COMMITTED mithilfe der Zeilenversionsverwaltung.

ALLOCATION_UNIT.PAGE_COUNT

Seitenanzahlstatistiken für Zuordnungseinheiten während verzögerter Löschvorgänge.

METADATA.INDEXSTATS

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.STATS

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.XML_COLLECTION

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SEQUENCE

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.QNAME

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ASSEMBLY_CLR_NAME

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ASSEMBLY_TOKEN

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ASSEMBLY

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.PARTITION_FUNCTION

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DATA_SPACE

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.USER_TYPE

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DB_PRINCIPAL_SID

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DATABASE_PRINCIPAL

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SCHEMA

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.XML_COMPONENT

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVER

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.INSTANTIATED_TYPE_HASH

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DB_MIRRORING_SESSION

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ENDPOINT

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SECURITY_CACHE

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DB_MIRRORING_WITNESS

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.CREDENTIAL

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SECURITY_DESCRIPTOR

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVICE_BROKER_GUID

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.CONVERSTATION_ENDPOINT_RECV

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DATABASE

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.CONVERSATION_GROUP

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ENDPOINT_WEBMETHOD

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ASSYMMETRIC_KEY

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.FULLTEXT_CATALOG

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.FULLTEXT_INDEX

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVER_PRINCIPAL

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ROUTE

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.MESSAGE

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.QNAME_HASH

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVICE_MESSAGE_TYPE

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.CONVERSTATION_ENDPOINT_SEND

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.CERTIFICATE

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SYMMETRIC_KEY

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.XML_INDEX_QNAME

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVICE_CONTRACT

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.REMOTE_SERVICE_BINDING

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVICE

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.METADATA_CACHE

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

In der folgenden Tabelle ist das Format der resource_description-Spalte für die einzelnen Ressourcentypen angegeben.

Ressource

Format

Beschreibung

DATABASE

Nicht verfügbar

Datenbank-ID ist bereits in der resource_database_id-Spalte verfügbar.

FILE

<file_id>

ID der Datei, die durch diese Ressource dargestellt wird.

OBJECT

<object_id>

ID des Objekts, das durch diese Ressource dargestellt wird. Bei dem Objekt kann es sich nicht nur um eine Tabelle handeln, sondern um ein beliebiges in sys.objects aufgelistetes Objekt.

PAGE

<file_id>:<page_in_file>

Stellt die Datei-ID und die Seiten-ID der Seite dar, die durch diese Ressource dargestellt wird.

KEY

<hash_value>

Stellt einen Hashwert der Schlüsselspalten aus der Zeile dar, die durch diese Ressource dargestellt wird.

EXTENT

<file_id>:<page_in_files>

Stellt die Datei und die Seiten-ID des Blocks dar, der durch diese Ressource dargestellt wird. Die Block-ID ist mit der Seiten-ID der ersten Seiten des Blocks identisch.

RID

<file_id>:<page_in_file>:<row_on_page>

Stellt die Seiten-ID und die Zeilen-ID der Zeile dar, die durch diese Ressource dargestellt wird. Wenn die zugeordnete Objekt-ID 99 lautet, stellt diese Ressource eine der acht gemischten Seitenslots auf der ersten IAM-Seite einer IAM-Kette dar.

APPLICATION

<DbPrincipalId>:<upto 32 characters>:(<hash_value>)

Stellt die ID des Datenbankprinzipals dar, der für die Bereichsauswahl dieser Anwendungssperrenressource verwendet wird. Außerdem sind bis zu 32 Zeichen aus der Ressourcenzeichenfolge enthalten, die dieser Anwendungssperrenressource entsprechen. In bestimmten Fällen können nur 2 Zeichen angezeigt werden, da die vollständige Zeichenfolge nicht mehr verfügbar ist. Dies tritt nur beim Wiederherstellen der Datenbank für Anwendungssperren auf, die im Rahmen des Wiederherstellungsprozesses erneut abgerufen werden. Der Hashwert stellt einen Hash der vollständigen Ressourcenzeichenfolge dar, die dieser Anwendungssperrenressource entspricht.

HOBT

Nicht verfügbar

Die HoBt-ID ist als resource_associated_entity_id enthalten.

ALLOCATION_UNIT

Nicht verfügbar

Die Zuordnungseinheit-ID, die als resource_associated_entity_id enthalten ist.

METADATA.SEQUENCE

$seq_type = S, object_id = O

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.STATS

object_id = O, stats_id = S

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SCHEMA

schema_id = S

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.INDEXSTATS

object_id = O, index_id oder stats_id = I

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DATABASE_PRINCIPAL

principal_id = P

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DB_PRINCIPAL_SID

$hash = H1:H2:H3

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.USER_TYPE

user_type_id = U

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DATA_SPACE

data_space_id = D

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.PARTITION_FUNCTION

function_id = F

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.PARTITION_FUNCTION

function_id = F

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ASSEMBLY

assembly_id = A

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ASSEMBLY_TOKEN

assembly_id = A, $token_id = T

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ASSEMBLY_CLR_NAME

$qname_id = Q

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.QNAME

$qname_id = Q

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.XML_COLLECTION

xml_collection_id = X

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.XML_COMPONENT

xml_component_id = X

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.QNAME_HASH

$qname_scope_id = Q, $qname_hash = H

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.XML_INDEX_QNAME

object_id = O, $qname_id = Q

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVICE_MESSAGE_TYPE

message_type_id = M

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVICE_CONTRACT

service_contract_id = S

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVICE

service_id = S

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.REMOTE_SERVICE_BINDING

remote_service_binding_id = R

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ROUTE

route_id = R

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.FULLTEXT_INDEX

object_id = O

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.FULLTEXT_CATALOG

fulltext_catalog_id = F

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.CONVERSATION_GROUP

conversation_group_id = C

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.CONVERSTATION_ENDPOINT_SEND

$hash = H1:H2:H3

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.CONVERSTATION_ENDPOINT_RECV

$hash = H1:H2:H3

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SYMMETRIC_KEY

symmetric_key_id = S

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.CERTIFICATE

certificate_id = C

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ASSYMMETRIC_KEY

asymmetric_key_id = A

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DATABASE

database_id = D

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.MESSAGE

message_id = M

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVER_PRINCIPAL

principal_id = P

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVER

server_id = S

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ENDPOINT

endpoint_id = E

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.ENDPOINT_WEBMETHOD

$hash = H1:H2:H3

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DB_MIRRORING_SESSION

database_id = D

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.DB_MIRRORING_WITNESS

$hash = H1:H2:H3

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVICE_BROKER_GUID

$hash = H1:H2:H3

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SERVICE_BROKER_GUID

$hash = H1:H2:H3

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.CREDENTIAL

credential_id = C

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.INSTANTIATED_TYPE_HASH

user_type_id = U, hash = H1

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SECURITY_DESCRIPTOR

sd_id = S

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.SECURITY_CACHE

$hash = H1:H2:H3

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

METADATA.METADATA_CACHE

$hash = H1:H2:H3

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

Beispiele

A. Verwenden von sys.dm_tran_locks mit anderen Tools

Im folgenden Beispiel wird ein Aktualisierungsvorgang durch eine andere Transaktion blockiert. Mithilfe von sys.dm_tran_locks und anderen Tools werden Informationen zum Sperren von Ressourcen bereitgestellt.

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

Mit der folgenden Abfrage werden Sperrinformationen angezeigt. Der Wert für <dbid> sollte durch den Wert von database_id aus sys.databases ersetzt werden.

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>

Die folgende Abfrage gibt Objektinformationen mithilfe des Wertes von resource_associated_entity_id aus der vorherigen Abfrage zurück. Die Abfrage muss ausgeführt werden, während Sie mit der Datenbank verbunden sind, die das Objekt enthält.

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

Die folgende Abfrage zeigt Blockierungsinformationen an.

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;

Die Ressourcen werden freigegeben, indem ein Rollback für die Transaktionen ausgeführt wird.

-- Session 1
ROLLBACK;
GO

-- Session 2
ROLLBACK;
GO

B. Verknüpfen von Sitzungsinformationen mit Betriebssystemthreads

Das folgende Beispiel gibt Informationen zurück, die eine Sitzungs-ID einer Windows-Thread-ID zuordnen. Die Leistung des Threads kann im Windows-Systemmonitor überwacht werden. Diese Abfrage gibt keine Sitzungs-IDs zurück, die derzeit deaktiviert sind.

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