sys.internal_tables (Transact-SQL)
Gilt für: SQL Server
Gibt eine Zeile für jedes Objekt zurück, bei dem es sich um eine interne Tabelle handelt. Interne Tabellen werden automatisch von SQL Server generiert, um verschiedene Features zu unterstützen. Wenn Sie beispielsweise einen primären XML-Index erstellen, erstellt SQL Server automatisch eine interne Tabelle, um die zerkleinerten XML-Dokumentdaten beizubehalten. Interne Tabellen werden im Sys-Schema jeder Datenbank angezeigt und weisen eindeutige, vom System generierte Namen auf, die ihre Funktion angeben, z. B. xml_index_nodes_2021582240_32001 oder queue_messages_1977058079
Interne Tabellen enthalten keine Daten, auf die von Benutzern zugegriffen werden kann. Ihre Schemas stehen fest und können nicht geändert werden. Sie können in Transact-SQL-Anweisungen nicht auf interne Tabellennamen verweisen. Beispielsweise können Sie keine Anweisung wie SELECT * FROM <sys.internal_table_name> ausführen. Sie können Katalogsichten jedoch abfragen, um die Metadaten interner Tabellen anzuzeigen.
Spaltenname | Datentyp | BESCHREIBUNG |
---|---|---|
<Columns inherited from sys.objects> | Eine Liste der Spalten, die diese Sicht erbt, finden Sie unter sys.objects (Transact-SQL). | |
internal_type | tinyint | Der Typ der internen Tabelle: 3 = query_disk_store_query_hints 4 = query_disk_store_query_template_parameterization 6 = query_disk_store_wait_stats 201 = queue_messages 202 = xml_index_nodes 203 = fulltext_catalog_freelist 205 = query_notification 206 = service_broker_map 207 = extended_indexes (z. B. ein räumlicher Index) 208 = filestream_tombstone 209 = change_tracking 210 = tracked_committed_transactions 220 = contained_features 225 = filetable_updates 236 = selective_xml_index_node_table 240 = query_disk_store_query_text 241 = query_disk_store_query 242 = query_disk_store_plan 243 = query_disk_store_runtime_stats 244 = query_disk_store_runtime_stats_interval 245 = query_context_settings |
internal_type_desc | nvarchar(60) | Die Beschreibung des Typs der internen Tabelle: QUERY_DISK_STORE_QUERY_HINTS QUERY_DISK_STORE_QUERY_TEMPLATE_PARAMETERIZATION QUERY_DISK_STORE_WAIT_STATS QUEUE_MESSAGES XML_INDEX_NODES FULLTEXT_CATALOG_FREELIST FULLTEXT_CATALOG_MAP QUERY_NOTIFICATION SERVICE_BROKER_MAP EXTENDED_INDEXES FILESTREAM_TOMBSTONE CHANGE_TRACKING TRACKED_COMMITTED_TRANSACTIONS CONTAINED_FEATURES FILETABLE_UPDATES SELECTIVE_XML_INDEX_NODE_TABLE QUERY_DISK_STORE_QUERY_TEXT QUERY_DISK_STORE_QUERY QUERY_DISK_STORE_PLAN QUERY_DISK_STORE_RUNTIME_STATS QUERY_DISK_STORE_RUNTIME_STATS_INTERVAL QUERY_CONTEXT_SETTINGS |
parent_id | int | ID des übergeordneten Elements, unabhängig davon, ob es über einen Schemabereich verfügt oder nicht. Andernfalls 0, wenn es kein übergeordnetes Element gibt. = queue_messages object_id der Warteschlange = xml_index_nodes object_id des XML-Indexes = fulltext_catalog_freelist fulltext_catalog_id des Volltextkatalogs = fulltext_index_map object_id des Volltextindexes query_notification oder service_broker_map = 0 = extended_indexes object_id eines erweiterten Indexes, z. B. eines räumlichen Indexes object_id der Tabelle, für die die Tabellennachverfolgung aktiviert ist = change_tracking |
parent_minor_id | int | Die Neben-ID des übergeordneten Elements. = xml_index_nodes index_id des XML-Indexes = extended_indexes index_id eines erweiterten Indexes, z. B. eines räumlichen Indexes 0 = queue_messages, fulltext_catalog_freelist, fulltext_index_map, query_notification, service_broker_map oder change_tracking |
lob_data_space_id | int | Ein Wert ungleich Null ist die ID des Datenbereichs (Dateigruppe oder Partitionsschema), der die LOB-Daten (Large Object) für diese Tabelle enthält. |
filestream_data_space_id | int | Für die zukünftige Verwendung reserviert. |
Berechtigungen
Die Sichtbarkeit der Metadaten in Katalogsichten ist auf sicherungsfähige Elemente eingeschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Metadata Visibility Configuration.
Hinweise
Interne Tabellen werden in dieselbe Dateigruppe wie die übergeordnete Entität platziert. Sie können die in Beispiel F unten dargestellte Katalogabfrage zur Rückgabe der Anzahl von Seiten verwenden, die interne Tabellen für Daten innerhalb und außerhalb von Zeilen sowie LOB-Daten (Large Object) benötigen.
Sie können die sp_spaceused Systemprozedur verwenden, um Speicherplatznutzungsdaten für interne Tabellen zurückzugeben. sp_spaceused meldet internen Tabellenbereich auf folgende Weise:
Wird ein Warteschlangenname angegeben, wird auf die zugrunde liegende interne Tabelle, die der Warteschlange zugeordnet ist, verwiesen und ihre Speicherverwendung gemeldet.
Seiten, die von den internen Tabellen von XML-Indizes, räumlichen Indizes und Volltextindizes verwendet werden, sind in der spalte index_size enthalten. Wenn ein Tabellen- oder indizierte Ansichtsname angegeben wird, werden die Seiten für die XML-Indizes, räumlichen Indizes und Volltextindizes für dieses Objekt in den reservierten Spalten und index_size enthalten.
Beispiele
In den folgenden Beispielen wird die Abfrage von Metadaten interner Tabellen mithilfe von Katalogsichten veranschaulicht.
A. Anzeigen interner Tabellen, die Spalten aus der sys.objects-Katalogsicht erben
SELECT * FROM sys.objects WHERE type = 'IT';
B. Zurückgeben aller Metadaten interner Tabellen (einschließlich der von sys.objects geerbten)
SELECT * FROM sys.internal_tables;
C. Zurückgeben von Spalten und Spaltendatentypen interner Tabellen
SELECT SCHEMA_NAME(itab.schema_id) AS schema_name
,itab.name AS internal_table_name
,typ.name AS column_data_type
,col.*
FROM sys.internal_tables AS itab
JOIN sys.columns AS col ON itab.object_id = col.object_id
JOIN sys.types AS typ ON typ.user_type_id = col.user_type_id
ORDER BY itab.name, col.column_id;
D: Zurückgeben der Indizes interner Tabellen
SELECT SCHEMA_NAME(itab.schema_id) AS schema_name
, itab.name AS internal_table_name
, idx.*
FROM sys.internal_tables AS itab
JOIN sys.indexes AS idx ON itab.object_id = idx.object_id
ORDER BY itab.name, idx.index_id;
E. Zurückgeben der Statistiken interner Tabellen
SELECT SCHEMA_NAME(itab.schema_id) AS schema_name
,itab.name AS internal_table_name
, s.*
FROM sys.internal_tables AS itab
JOIN sys.stats AS s ON itab.object_id = s.object_id
ORDER BY itab.name, s.stats_id;
F. Zurückgeben von Informationen zu Partitionen und Zuordnungseinheiten interner Tabellen
SELECT SCHEMA_NAME(itab.schema_id) AS schema_name
,itab.name AS internal_table_name
,idx.name AS heap_or_index_name
,p.*
,au.*
FROM sys.internal_tables AS itab
JOIN sys.indexes AS idx
-- JOIN to the heap or the clustered index
ON itab.object_id = idx.object_id AND idx.index_id IN (0,1)
JOIN sys.partitions AS p
ON p.object_id = idx.object_id AND p.index_id = idx.index_id
JOIN sys.allocation_units AS au
-- IN_ROW_DATA (type 1) and ROW_OVERFLOW_DATA (type 3) => JOIN to partition's Hobt
-- else LOB_DATA (type 2) => JOIN to the partition ID itself.
ON au.container_id =
CASE au.type
WHEN 2 THEN p.partition_id
ELSE p.hobt_id
END
ORDER BY itab.name, idx.index_id;
G. Zurückgeben der Metadaten interner Tabellen für XML-Indizes
SELECT t.name AS parent_table
,t.object_id AS parent_table_id
,it.name AS internal_table_name
,it.object_id AS internal_table_id
,xi.name AS primary_XML_index_name
,xi.index_id as primary_XML_index_id
FROM sys.internal_tables AS it
JOIN sys.tables AS t
ON it.parent_id = t.object_id
JOIN sys.xml_indexes AS xi
ON it.parent_id = xi.object_id
AND it.parent_minor_id = xi.index_id
WHERE it.internal_type_desc = 'XML_INDEX_NODES';
GO
H. Zurückgeben der Metadaten interner Tabellen für Service Broker-Warteschlangen
SELECT q.name AS queue_name
,q.object_id AS queue_id
,it.name AS internal_table_name
,it.object_id AS internal_table_id
FROM sys.internal_tables AS it
JOIN sys.service_queues AS q ON it.parent_id = q.object_id
WHERE it.internal_type_desc = 'QUEUE_MESSAGES';
GO
I. Zurückgeben der Metadaten interner Tabellen für alle Service Broker-Dienste
SELECT *
FROM tempdb.sys.internal_tables
WHERE internal_type_desc = 'SERVICE_BROKER_MAP';
GO
Weitere Informationen
Katalogsichten (Transact-SQL)
Katalogsichten für Objekte (Transact-SQL)