Aracılığıyla paylaş


sys.internal_tables (Transact-SQL)

Şunlar için geçerlidir: SQL Server

İç tablo olan her nesne için bir satır döndürür. İç tablolar sql server tarafından çeşitli özellikleri desteklemek için otomatik olarak oluşturulur. Örneğin, birincil XML dizini oluşturduğunuzda SQL Server, parçalanmış XML belge verilerini kalıcı hale getirmek için otomatik olarak bir iç tablo oluşturur. İç tablolar her veritabanının sys şemasında görünür ve işlevlerini gösteren benzersiz, sistem tarafından oluşturulan adlara sahiptir, örneğin veya xml_index_nodes_2021582240_32001queue_messages_1977058079.

Sütun adı Veri türü Açıklama
Devralınan sütunlar sys.objects Bu görünümün devraldığı sütunların listesi için bkz. sys.objects.
internal_type tinyint İç tablonun türü:

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 (uzamsal dizin gibi)
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) İç tablo türünün açıklaması:

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 Şema kapsamına sahip olup olmamasına bakılmaksızın üst öğe kimliği. Aksi takdirde, 0 ebeveyn yoksa.

queue_messages = object_id kuyruk

xml_index_nodes = object_id XML dizininin

fulltext_catalog_freelist = fulltext_catalog_id tam metin kataloğunun

fulltext_index_map = object_id tam metin dizininin

query_notificationveya service_broker_map = 0

extended_indexes = object_id uzamsal dizin gibi genişletilmiş bir dizinin

object_id tablo izlemenin etkinleştirildiği tablonun = change_tracking
parent_minor_id Int Üst öğeye ait ikincil kimlik.

xml_index_nodes = index_id XML dizininin
extended_indexes = index_id uzamsal dizin gibi genişletilmiş bir dizinin

0 = queue_messages, fulltext_catalog_freelist, fulltext_index_map, query_notification, , service_broker_mapveya change_tracking
lob_data_space_id Int Sıfır olmayan değer, bu tablo için büyük nesne (LOB) verilerini tutan veri alanının (dosya grubu veya bölüm şeması) kimliğidir.
filestream_data_space_id Int Gelecekte kullanım için ayrılmıştır.

İç tablolar kullanıcı tarafından erişilebilen veriler içermez ve şemaları sabittir ve değiştirilemez. Transact-SQL deyimlerinde iç tablo adlarına başvuramazsınız. Örneğin, gibi SELECT * FROM <sys.internal_table_name>bir deyimi yürütemezsiniz. Ancak, iç tabloların meta verilerini görmek için katalog görünümlerini sorgulayabilirsiniz.

İzinler

Katalog görünümlerindeki meta verilerin görünürlüğü, kullanıcının sahip olduğu veya kullanıcıya bazı izinlerin verildiği güvenli hale getirilebilir öğelerle sınırlıdır. Daha fazla bilgi için bkz. meta veri görünürlüğü yapılandırması .

Açıklamalar

İç tablolar üst varlıkla aynı dosya grubuna yerleştirilir. İç tabloların satır içi, satır dışı ve büyük nesne (LOB) verileri için kullandığı sayfa sayısını döndürmek için Örnek F'de gösterilen katalog sorgusunu kullanabilirsiniz.

İç tablolar için alan kullanım verilerini döndürmek için sp_spaceused sistem yordamını kullanabilirsiniz. sp_spaceused iç tablo alanını aşağıdaki yollarla raporlar:

  • Bir kuyruk adı belirtildiğinde, kuyrukla ilişkili temel alınan iç tabloya başvurulur ve depolama tüketimi bildirilir.

  • XML dizinlerinin, uzamsal dizinlerin ve tam metin dizinlerinin iç tabloları tarafından kullanılan sayfalar sütuna index_size eklenir. Tablo veya dizinli görünüm adı belirtildiğinde, xml dizinleri, uzamsal dizinler ve bu nesnenin tam metin dizinleri için sayfalar ve index_sizesütunlarına reserved eklenir.

Örnekler

Aşağıdaki örneklerde, katalog görünümlerini kullanarak iç tablo meta verilerini sorgulama işlemi gösterilmektedir.

A. Sys.objects katalog görünümünden sütunları devralan iç tabloları gösterme

SELECT * FROM sys.objects WHERE type = 'IT';

B. Tüm iç tablo meta verilerini döndür (sys.objects dosyasından devralınan veriler dahil)

SELECT * FROM sys.internal_tables;

C. İç tablo sütunlarını ve sütun veri türlerini döndürme

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. İç tablo dizinlerini döndürme

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. İç tablo istatistiklerini döndürme

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. İç tablo bölümü ve ayırma birimi bilgilerini döndürme

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. XML dizinleri için iç tablo meta verilerini döndürme

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. Hizmet Aracısı kuyrukları için iç tablo meta verilerini döndürme

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

Ben. Tüm Hizmet Aracısı hizmetleri için iç tablo meta verilerini döndürme

SELECT * FROM tempdb.sys.internal_tables
WHERE internal_type_desc = 'SERVICE_BROKER_MAP';
GO