Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Retorna uma linha para cada objeto que é uma tabela interna. As tabelas internas são geradas automaticamente pelo SQL Server para dar suporte a vários recursos. Por exemplo, quando você cria um índice XML primário, o SQL Server cria automaticamente uma tabela interna para persistir os dados do documento XML triturado. As tabelas internas aparecem no sys esquema de cada banco de dados e têm nomes exclusivos gerados pelo sistema que indicam sua função, por exemplo, xml_index_nodes_2021582240_32001 ou queue_messages_1977058079.
| Nome da coluna | Tipo de dados | Descrição |
|---|---|---|
Colunas herdadas de sys.objects |
Para obter uma lista de colunas que esse modo de exibição herda, consulte sys.objects. | |
internal_type |
tinyint | Tipo de quadro interno: 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 (como um índice espacial)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) | Descrição do tipo de quadro interno: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 do pai, independentemente de ter ou não escopo de esquema. Caso contrário, 0 se não houver pai.queue_messages
=
object_id de filaxml_index_nodes
=
object_id do índice XMLfulltext_catalog_freelist
=
fulltext_catalog_id do catálogo de texto integralfulltext_index_map
=
object_id do índice de texto integralquery_notification, ou service_broker_map = 0extended_indexes
=
object_id de um índice estendido, como um índice espacialobject_id da tabela para a qual o acompanhamento de tabelas está habilitado = change_tracking |
parent_minor_id |
Int | Identificação menor do progenitor.xml_index_nodes
=
index_id do índice XMLextended_indexes
=
index_id de um índice estendido, como um índice espacial0
=
queue_messages, fulltext_catalog_freelist, , fulltext_index_map, service_broker_mapquery_notification, ouchange_tracking |
lob_data_space_id |
Int | Valor diferente de zero é a ID do espaço de dados (grupo de arquivos ou esquema de partição) que contém os dados de objeto grande (LOB) para esta tabela. |
filestream_data_space_id |
Int | Reservado para uso futuro. |
As tabelas internas não contêm dados acessíveis pelo usuário e seu esquema é fixo e inalterável. Não é possível fazer referência a nomes de tabelas internas em Transact-SQL instruções. Por exemplo, não é possível executar uma instrução como SELECT * FROM <sys.internal_table_name>. No entanto, você pode consultar exibições de catálogo para ver os metadados de tabelas internas.
Permissões
A visibilidade dos metadados nas visualizações de catálogo é limitada aos itens de segurança que um utilizador possui ou nos quais o utilizador recebeu alguma permissão. Para obter mais informações, consulte Configuração de visibilidade de metadados.
Observações
As tabelas internas são colocadas no mesmo grupo de arquivos que a entidade pai. Você pode usar a consulta de catálogo mostrada no Exemplo F para retornar o número de páginas que as tabelas internas consomem para dados de entrada, fora de linha e objeto grande (LOB).
Você pode usar o procedimento do sistema sp_spaceused para retornar dados de uso de espaço para tabelas internas.
sp_spaceused Relata o espaço interno da tabela das seguintes maneiras:
Quando um nome de fila é especificado, a tabela interna subjacente associada à fila é referenciada e seu consumo de armazenamento é relatado.
As páginas usadas pelas tabelas internas de índices XML, índices espaciais e índices de texto completo são incluídas na
index_sizecoluna. Quando um nome de tabela ou exibição indexada é especificado, as páginas para os índices XML, índices espaciais e índices de texto completo para esse objeto são incluídas nas colunasreservedeindex_size.
Exemplos
Os exemplos a seguir demonstram como consultar metadados de tabela interna usando exibições de catálogo.
Um. Mostrar tabelas internas que herdam colunas da exibição de catálogo sys.objects
SELECT * FROM sys.objects WHERE type = 'IT';
B. Retornar todos os metadados internos da tabela (incluindo os herdados de sys.objects)
SELECT * FROM sys.internal_tables;
C. Retornar colunas de tabela interna e tipos de dados de coluna
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. Retornar índices de tabela interna
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. Retornar estatísticas da tabela interna
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. Retornar informações da partição da tabela interna e da unidade de alocação
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. Retornar metadados de tabela interna para í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. Retornar metadados de tabela interna para filas do 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
Eu. Retornar metadados de tabela interna para todos os serviços do Service Broker
SELECT * FROM tempdb.sys.internal_tables
WHERE internal_type_desc = 'SERVICE_BROKER_MAP';
GO