Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Vrátí jeden řádek pro každý objekt, který je interní tabulkou. Sql Server automaticky generuje interní tabulky, aby podporovaly různé funkce. Když například vytvoříte primární index XML, SQL Server automaticky vytvoří interní tabulku, která bude uchovávat data dokumentu XML shreded. Interní tabulky se zobrazují ve schématu sys každé databáze a mají jedinečné, systémem generované názvy, které označují jejich funkci, xml_index_nodes_2021582240_32001 například nebo queue_messages_1977058079.
| Název sloupce | Datový typ | Popis |
|---|---|---|
Sloupce zděděné z sys.objects |
Seznam sloupců, které toto zobrazení dědí, naleznete v části sys.objects. | |
internal_type |
tinyint | Typ interní tabulky: 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 (například prostorový 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) | Popis typu interní tabulky: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 nadřazeného objektu bez ohledu na to, jestli se jedná o obor schématu, nebo ne. V opačném případě, 0 pokud neexistuje žádný nadřazený objekt.queue_messages
=
object_id frontyxml_index_nodes
=
object_id indexu XMLfulltext_catalog_freelist
=
fulltext_catalog_id fulltextového katalogufulltext_index_map
=
object_id fulltextového indexuquery_notificationnebo service_broker_map = 0extended_indexes
=
object_id rozšířeného indexu, například prostorového indexuobject_id tabulky, pro kterou je povoleno sledování tabulky = change_tracking |
parent_minor_id |
Int | Vedlejší ID nadřazeného objektu.xml_index_nodes
=
index_id indexu XMLextended_indexes
=
index_id rozšířeného indexu, například prostorového indexu0
=
queue_messages, fulltext_catalog_freelist, fulltext_index_map, query_notification, , service_broker_mapnebo change_tracking |
lob_data_space_id |
Int | Nenulová hodnota je ID datového prostoru (filegroup nebo partition-scheme), které obsahuje velká data objektu (LOB) pro tuto tabulku. |
filestream_data_space_id |
Int | Vyhrazeno pro budoucí použití. |
Interní tabulky neobsahují uživatelsky přístupná data a jejich schéma je pevné a nepůjdou. V příkazech Transact-SQL nemůžete odkazovat na interní názvy tabulek. Například nemůžete spustit příkaz, například SELECT * FROM <sys.internal_table_name>. Můžete se ale dotazovat na zobrazení katalogu a zobrazit metadata interních tabulek.
Povolení
Viditelnost metadat v zobrazeních katalogu je omezena na položky, které uživatel vlastní, nebo na které má uživatel udělené určité oprávnění. Další informace naleznete v kapitole Konfigurace viditelnosti metadat.
Poznámky
Interní tabulky se umístí do stejné skupiny souborů jako nadřazená entita. Pomocí dotazu katalogu zobrazeného v příkladu F můžete vrátit počet stránek interních tabulek spotřebovaných pro data v řádku, mimo řádek a velké objekty (LOB).
Systémovou proceduru sp_spaceused můžete použít k vrácení dat o využití místa pro interní tabulky.
sp_spaceused sestavy interního prostoru tabulky následujícími způsoby:
Pokud je zadán název fronty, odkazuje se na podkladovou interní tabulku přidruženou k frontě a její spotřeba úložiště se hlásí.
Do sloupce jsou zahrnuty
index_sizestránky používané interními tabulkami indexů XML, prostorových indexů a fulltextových indexů. Při zadání názvu tabulky nebo indexovaného zobrazení jsou stránky indexů XML, prostorové indexy a fulltextové indexy pro tento objekt zahrnuty do sloupcůreservedaindex_size.
Příklady
Následující příklady ukazují, jak dotazovat interní metadata tabulek pomocí zobrazení katalogu.
A. Zobrazení interních tabulek, které dědí sloupce ze zobrazení katalogu sys.objects
SELECT * FROM sys.objects WHERE type = 'IT';
B. Vrátí všechna interní metadata tabulky (včetně toho, co je zděděno z sys.objects).
SELECT * FROM sys.internal_tables;
C. Vrácení interních sloupců tabulky a datových typů sloupců
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. Vrácení interních indexů tabulek
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. Vrácení interní statistiky tabulek
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. Vrácení informací o interním oddílu tabulky a alokační jednotce
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. Vrácení interních metadat tabulek pro indexy XML
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. Vrácení interních metadat tabulek pro fronty Service Broker
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
Já. Vrácení interních metadat tabulek pro všechny služby Service Broker
SELECT * FROM tempdb.sys.internal_tables
WHERE internal_type_desc = 'SERVICE_BROKER_MAP';
GO