Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S'applique à :SQL Server
Retourne une ligne par objet représentant une table interne. Les tables internes sont générées automatiquement par SQL Server pour prendre en charge différentes fonctionnalités. Par exemple, lorsque vous créez un index XML principal, SQL Server crée automatiquement une table interne pour conserver les données de document XML déchiquetées. Les tables internes apparaissent dans le sys schéma de chaque base de données et ont des noms uniques générés par le système qui indiquent leur fonction, par exemple, xml_index_nodes_2021582240_32001 ou queue_messages_1977058079.
| Nom de la colonne | Type de données | Descriptif |
|---|---|---|
Colonnes héritées de sys.objects |
Pour obtenir la liste des colonnes que cette vue hérite, consultez sys.objects. | |
internal_type |
tinyint | Type de la table interne : 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 (par exemple, un index spatial)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) | Description du type de table interne :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 du parent, qu’il s’agisse d’une étendue de schéma ou non. Sinon, 0 s’il n’y a pas de parent.queue_messages
=
object_id de file d’attentexml_index_nodes
=
object_id de l’index XMLfulltext_catalog_freelist
=
fulltext_catalog_id du catalogue de texte intégralfulltext_index_map
=
object_id de l’index de recherche en texte intégralquery_notificationou service_broker_map = 0extended_indexes
=
object_id d’un index étendu, tel qu’un index spatialobject_id de la table pour laquelle le suivi des tables est activé = change_tracking |
parent_minor_id |
Int | ID mineur du parent.xml_index_nodes
=
index_id de l’index XMLextended_indexes
=
index_id d’un index étendu, tel qu’un index spatial0
=
queue_messages, , fulltext_catalog_freelist, query_notificationfulltext_index_map, , service_broker_map, ouchange_tracking |
lob_data_space_id |
Int | Une valeur différente de zéro représente l'ID d'espace de données (groupe de fichiers ou schéma de partition) qui contient les données LOB de cette table. |
filestream_data_space_id |
Int | Réservé pour un usage futur. |
Les tables internes ne contiennent pas de données accessibles par l’utilisateur et leur schéma est fixe et inaltérable. Vous ne pouvez pas référencer les noms de tables internes dans les instructions Transact-SQL. Par exemple, vous ne pouvez pas exécuter une instruction telle que SELECT * FROM <sys.internal_table_name>. Par contre, vous pouvez interroger les affichages catalogue pour voir les métadonnées des tables internes.
autorisations
La visibilité des métadonnées dans les affichages catalogue est limitée aux éléments sécurisables qu'un utilisateur détient ou pour lesquels des autorisations lui ont été accordées. Pour plus d'informations, consultez Metadata Visibility Configuration.
Notes
Les tables internes sont placées dans le même groupe de fichiers que l'entité parente. Vous pouvez utiliser la requête de catalogue affichée dans l’exemple F pour renvoyer le nombre de pages utilisées par les tables internes pour les données d’objet en ligne, hors ligne et objet volumineux (LOB).
Vous pouvez utiliser la procédure système sp_spaceused pour retourner les données d’utilisation de l’espace pour les tables internes.
sp_spaceused signale l’espace de table interne de la manière suivante :
Si un nom de file d'attente est spécifié, la table interne sous-jacente associée à la file d'attente est référencée et sa consommation de stockage est renseignée.
Les pages utilisées par les tables internes d’index XML, d’index spatiaux et d’index de recherche en texte intégral sont incluses dans la
index_sizecolonne. Lorsqu’un nom de table ou d’affichage indexé est spécifié, les pages des index XML, des index spatiaux et des index de recherche en texte intégral pour cet objet sont incluses dans les colonnesreservedetindex_size.
Exemples
Les exemples suivants montrent comment interroger les métadonnées des tables internes à l'aide des affichages catalogue.
R : Afficher les tables internes qui héritent des colonnes de l'affichage catalogue sys.objects
SELECT * FROM sys.objects WHERE type = 'IT';
B. Retourner toutes les métadonnées des tables internes (y compris celles qui sont héritées de sys.objects)
SELECT * FROM sys.internal_tables;
Chapitre C. Retourner les colonnes et les types de données des colonnes des tables internes
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. Retourner les index des tables internes
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. Retourner les statistiques des tables internes
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. Retourner les informations relatives aux partitions et aux unités d'allocation des tables internes
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. Retourner les métadonnées des tables internes pour les index 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. Retourner les métadonnées des tables internes pour les files d'attente 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
Je. Retourner les métadonnées des tables internes pour tous les services Service Broker
SELECT * FROM tempdb.sys.internal_tables
WHERE internal_type_desc = 'SERVICE_BROKER_MAP';
GO