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.
Hinweis
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.
Hinweis |
---|
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