Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Devuelve una fila por cada objeto que es una tabla interna. SQL Server genera automáticamente tablas internas para admitir varias características. Por ejemplo, al crear un índice XML principal, SQL Server crea automáticamente una tabla interna para conservar los datos de documento XML fragmentados. Las tablas internas aparecen en el esquema de cada base de datos y tienen nombres únicos generados por el sys
sistema que indican su función, por ejemplo, xml_index_nodes_2021582240_32001
o queue_messages_1977058079
.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
Columnas heredadas de sys.objects |
Para obtener una lista de columnas que hereda esta vista, consulte sys.objects. | |
internal_type |
tinyint | Tipo de la tabla interna: 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 204 = FULLTEXT_INDEX_MAP 205 = QUERY_NOTIFICATION 206 = SERVICE_BROKER_MAP 207 = EXTENDED_INDEXES (por ejemplo, un índice espacial)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) | Descripción del tipo de tabla interna: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_INDEX_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 | Identificador del elemento primario, independientemente de si tiene ámbito de esquema o no. De lo contrario, 0 si no hay ningún elemento primario.queue_messages
=
object_id de colaxml_index_nodes
=
object_id del índice XMLfulltext_catalog_freelist
=
fulltext_catalog_id del catálogo de texto completofulltext_index_map
=
object_id del índice de texto completoquery_notification o service_broker_map = 0 extended_indexes
=
object_id de un índice extendido, como un índice espacialobject_id de la tabla para la que está habilitado el seguimiento de tablas = change_tracking |
parent_minor_id |
Int | Id. secundario del primario.xml_index_nodes
=
index_id del índice XMLextended_indexes
=
index_id de un índice extendido, como un índice espacial0
=
queue_messages , fulltext_catalog_freelist , fulltext_index_map , query_notification , service_broker_map o change_tracking |
lob_data_space_id |
Int | Un valor distinto de cero es el Id. del espacio de datos (grupo de archivos o esquema de partición) que almacena los datos de objetos grandes (LOB) para esta tabla. |
filestream_data_space_id |
Int | Reservado para uso futuro. |
Las tablas internas no contienen datos accesibles para el usuario y su esquema es fijo e inalterable. No se puede hacer referencia a nombres de tabla internos en instrucciones Transact-SQL. Por ejemplo, no se puede ejecutar una instrucción como SELECT * FROM <sys.internal_table_name>
. Sin embargo, se pueden consultar vistas de catálogo para ver los metadatos de las tablas internas.
Permisos
La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario ha recibido algún permiso. Para obtener más información, consulte Metadata Visibility Configuration.
Comentarios
Las tablas internas se colocan en el mismo grupo de archivos que la entidad primaria. Puede usar la consulta de catálogo que se muestra en el ejemplo F para devolver el número de páginas que consumen las tablas internas para los datos de objetos fuera de fila y objetos grandes (LOB).
Puede usar el procedimiento del sistema sp_spaceused para devolver datos de uso del espacio para las tablas internas.
sp_spaceused
notifica el espacio de tabla interno de las maneras siguientes:
Cuando se especifica un nombre de cola, se hace referencia a la tabla interna subyacente asociada a la cola y se informa del consumo del almacenamiento.
Las páginas que usan las tablas internas de índices XML, índices espaciales e índices de texto completo se incluyen en la
index_size
columna. Cuando se especifica un nombre de tabla o vista indizada, las páginas de los índices XML, los índices espaciales y los índices de texto completo para ese objeto se incluyen en las columnasreserved
yindex_size
.
Ejemplos
En los ejemplos siguientes se demuestra cómo consultar los metadatos de las tablas internas de consulta mediante vistas de catálogo.
A Mostrar las tablas internas que heredan las columnas de la vista de catálogo sys.objects
SELECT * FROM sys.objects WHERE type = 'IT';
B. Devolver todos los metadatos de las tablas internas (incluido los que se heredan de sys.objects)
SELECT * FROM sys.internal_tables;
C. Devolver las columnas de las tablas internas y los tipos de datos de las columnas
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. Devolver los índices de las tablas internas
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. Devolver estadísticas de las tablas internas
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. Devolver información de la unidad de asignación y de la partición de las tablas internas
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. Devolver los metadatos de las tablas internas para los índices 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. Devolver los metadatos de las tablas internas para las colas de 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
Yo. Devolver los metadatos de las tablas internas para todos los servicios de Service Broker
SELECT * FROM tempdb.sys.internal_tables
WHERE internal_type_desc = 'SERVICE_BROKER_MAP';
GO