Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Returnerar en rad för varje objekt som är en intern tabell. Interna tabeller genereras automatiskt av SQL Server för att stödja olika funktioner. När du till exempel skapar ett primärt XML-index skapar SQL Server automatiskt en intern tabell för att spara de strimlade XML-dokumentdata. Interna tabeller visas i sys schemat för varje databas och har unika systemgenererade namn som anger deras funktion, xml_index_nodes_2021582240_32001 till exempel eller queue_messages_1977058079.
| Kolumnnamn | Datatyp | Beskrivning |
|---|---|---|
Kolumner ärvda från sys.objects |
En lista över kolumner som den här vyn ärver finns i sys.objects. | |
internal_type |
tinyint | Typ av intern tabell: 3 = QUERY_DISK_STORE_QUERY_HINTS4 = QUERY_DISK_STORE_QUERY_TEMPLATE_PARAMETERIZATION6 = QUERY_DISK_STORE_WAIT_STATS201 = QUEUE_MESSAGES202 = XML_INDEX_NODES203 = FULLTEXT_CATALOG_FREELIST204 = FULLTEXT_INDEX_MAP205 = QUERY_NOTIFICATION206 = SERVICE_BROKER_MAP207 = EXTENDED_INDEXES (till exempel ett rumsligt index)208 = FILESTREAM_TOMBSTONE209 = CHANGE_TRACKING210 = TRACKED_COMMITTED_TRANSACTIONS220 = CONTAINED_FEATURES225 = FILETABLE_UPDATES236 = SELECTIVE_XML_INDEX_NODE_TABLE240 = QUERY_DISK_STORE_QUERY_TEXT241 = QUERY_DISK_STORE_QUERY242 = QUERY_DISK_STORE_PLAN243 = QUERY_DISK_STORE_RUNTIME_STATS244 = QUERY_DISK_STORE_RUNTIME_STATS_INTERVAL245 = QUERY_CONTEXT_SETTINGS |
internal_type_desc |
nvarchar(60) | Beskrivning av typen av intern tabell:QUERY_DISK_STORE_QUERY_HINTSQUERY_DISK_STORE_QUERY_TEMPLATE_PARAMETERIZATIONQUERY_DISK_STORE_WAIT_STATSQUEUE_MESSAGESXML_INDEX_NODESFULLTEXT_CATALOG_FREELISTFULLTEXT_INDEX_MAPQUERY_NOTIFICATIONSERVICE_BROKER_MAPEXTENDED_INDEXESFILESTREAM_TOMBSTONECHANGE_TRACKINGTRACKED_COMMITTED_TRANSACTIONSCONTAINED_FEATURESFILETABLE_UPDATESSELECTIVE_XML_INDEX_NODE_TABLEQUERY_DISK_STORE_QUERY_TEXTQUERY_DISK_STORE_QUERYQUERY_DISK_STORE_PLANQUERY_DISK_STORE_RUNTIME_STATSQUERY_DISK_STORE_RUNTIME_STATS_INTERVALQUERY_CONTEXT_SETTINGS |
parent_id |
Int | ID för den överordnade, oavsett om det är schemaomfång eller inte. Annars, 0 om det inte finns någon överordnad.queue_messages
=
object_id av könxml_index_nodes
=
object_id av XML-indexetfulltext_catalog_freelist
=
fulltext_catalog_id av fulltextkatalogenfulltext_index_map
=
object_id av fulltextindexetquery_notificationeller service_broker_map = 0extended_indexes
=
object_id för ett utökat index, till exempel ett rumsligt indexobject_id av tabellen som tabellspårning är aktiverad för = change_tracking |
parent_minor_id |
Int | Underordnat ID för den överordnade.xml_index_nodes
=
index_id av XML-indexetextended_indexes
=
index_id för ett utökat index, till exempel ett rumsligt index0
=
queue_messages, fulltext_catalog_freelist, fulltext_index_map, query_notification, service_broker_map, eller change_tracking |
lob_data_space_id |
Int | Värde som inte är noll är ID för datautrymme (filgrupp eller partitionsschema) som innehåller stora objektdata (LOB) för den här tabellen. |
filestream_data_space_id |
Int | Reserverad för framtida användning. |
Interna tabeller innehåller inte användartillgängliga data och deras schema är fast och oföränderligt. Du kan inte referera till interna tabellnamn i Transact-SQL-instruktioner. Du kan till exempel inte köra en -instruktion som SELECT * FROM <sys.internal_table_name>. Du kan dock fråga katalogvyer för att se metadata för interna tabeller.
Behörigheter
Synligheten för metadata i katalogvyer är begränsad till skyddsbara objekt som en användare antingen äger eller som användaren har beviljats viss behörighet för. För mer information, se inställningar för metadatasynlighet.
Anmärkningar
Interna tabeller placeras i samma filgrupp som den överordnade entiteten. Du kan använda katalogfrågan som visas i Exempel F för att returnera antalet sidor som interna tabeller använder för data i rad, out-of-row och stora objekt (LOB).
Du kan använda sp_spaceused systemproceduren för att returnera utrymmesanvändningsdata för interna tabeller.
sp_spaceused rapporterar internt tabellutrymme på följande sätt:
När ett könamn anges refereras den underliggande interna tabellen som är associerad med kön och dess lagringsförbrukning rapporteras.
Sidor som används av de interna tabellerna med XML-index, rumsliga index och fulltextindex ingår i
index_sizekolumnen. När ett tabell- eller indexerat vynamn har angetts inkluderas sidorna för XML-index, rumsliga index och fulltextindex för objektet i kolumnernareservedochindex_size.
Exempel
Följande exempel visar hur du frågar efter interna tabellmetadata med hjälp av katalogvyer.
A. Visa interna tabeller som ärver kolumner från katalogvyn sys.objects
SELECT * FROM sys.objects WHERE type = 'IT';
B. Returnera alla interna tabellmetadata (inklusive de som ärvs från sys.objects)
SELECT * FROM sys.internal_tables;
C. Returnera interna tabellkolumner och kolumndatatyper
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
INNER JOIN sys.columns AS col
ON itab.object_id = col.object_id
INNER JOIN sys.types AS typ
ON typ.user_type_id = col.user_type_id
ORDER BY itab.name, col.column_id;
D. Returnera interna tabellindex
SELECT SCHEMA_NAME(itab.schema_id) AS schema_name,
itab.name AS internal_table_name,
idx.*
FROM sys.internal_tables AS itab
INNER JOIN sys.indexes AS idx
ON itab.object_id = idx.object_id
ORDER BY itab.name, idx.index_id;
E. Returnera intern tabellstatistik
SELECT SCHEMA_NAME(itab.schema_id) AS schema_name,
itab.name AS internal_table_name,
s.*
FROM sys.internal_tables AS itab
INNER JOIN sys.stats AS s
ON itab.object_id = s.object_id
ORDER BY itab.name, s.stats_id;
F. Returnera information om intern tabellpartition och allokeringsenhet
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
INNER 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)
INNER JOIN sys.partitions AS p
ON p.object_id = idx.object_id
AND p.index_id = idx.index_id
INNER 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. Returnera interna tabellmetadata för XML-index
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
INNER JOIN sys.tables AS t
ON it.parent_id = t.object_id
INNER 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. Returnera interna tabellmetadata för Service Broker-köer
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
INNER JOIN sys.service_queues AS q
ON it.parent_id = q.object_id
WHERE it.internal_type_desc = 'QUEUE_MESSAGES';
GO
Jag. Returnera interna tabellmetadata för alla Service Broker-tjänster
SELECT * FROM tempdb.sys.internal_tables
WHERE internal_type_desc = 'SERVICE_BROKER_MAP';
GO