Iç tablolar
SQL Server Aşağıdaki özellikleri desteklemek için dahili tabloları otomatik olarak oluşturur:
Birincil XML dizinler
Kayma dizinler
Service Broker
Sorgu bildirimleri
Değişiklik izleme
Bir yan etkisi, başka bir kullanıcı eylem iç tablolarıdır.Örneğin, oluşturduğunuzda, birincil XML diziniSQL Serverotomatik olarak oluşturur iç tablosuna kalıcı shredded XML verileri.İç tablolar görünürsys şema her veritabanı ve benzersiz, örneğin kendi işlevini gösteren sistem tarafından oluşturulan adlar, xml_index_nodes_2021582240_32001 veya queue_messages_1977058079 .
İç tablo kullanıcı erişimli veri içerir ve bunların şeması sabit ve unalterable.İç tablo adlarında başvuru yapamazTransact-SQLifadeler.Örneğin, SELECT gibi bir deyim yürütülemiyor * FROM<sys.internal_table_name>.Ancak, dahili tablo meta veriler görmek için katalog görünümleri sorgulayabilirsiniz.
İç tablo meta veriler görüntüleme
Kullanarak iç tablolarla ilişkilendirilen meta veriyi görüntüleyebileceğinizsys.internal_tables Katalog görünümü.Bu görünümü kullanarak, şema iç tablo görüntüleyebilirsiniz.Birçok kullanıcı tablosu, aynı özellikleri taşıyıp iç tablolar olması nedeniylesys.internal_tables görünümü sys.objects katalog görünümünden sütun alır ve bir tür olan 'IT'. Kullanıcı tablolarla iç tablo sütun meta veriler görünür olaraksys.Columns Katalog görünümü ve sistem tarafından oluşturulan dizinler ve tablolar iç İstatistikler meta veriler görülebilir sys.indexessys.stats katalog görünümleri. de
Diğer katalog görünümleri birleştirerek, ayırma ve alan kullanımı hakkında bilgi de elde edilebilir.Bu konuda daha sonra "İç tablo depolama" bakın.
Üst düzey katalog veri modeli aşağıda gösterilmiştir.
İç tablo meta veriler görüntülemek için izinler
Bir veritabanında iç tablo meta veriler görüntülemek için aşağıdaki izinleri veya grup üyeliği gerekir:
CONTROL SERVER izin.
Veritabanındaki Denetim izni.
Üyelikdb_owner or sysadmin group.
Üst varlık (XML ya da kayma dizin veya sıra) görüntüleyebileceğiniz bir kullanıcı, bu varlıkla ilgili iç tablo görüntüleyebilirsiniz.
XML dizini meta veriler görüntüleme
Aşağıda, bir iç tablo meta veriler yapısını bir XML dizini gösterir.
Katalog görünümü şekilde gösterildiği ilişkileri anlamak için kabul birincil XML dizinXp üzerinde tablo T oluşturulan. meta verilerni tablo bulunduğusys.tablos Katalog görünümü XML dizin için meta veriler ise sys.xml_indexes Katalog görünümü. İç tablo meta verilerTi tarafından oluşturulan SQL Serververilerin bulunduğu XML dizin kaldırmak için sys.internal_tables görünümü.
İç tablo arasındaki ilişkiyi bulmak içinTi , kullanıcı tablo T yapabilirsiniz birleştirmek sys.tables görünümü. object_id sütununa sys.internal_tables görünümünün parent_id sütun To find the relationship between the internal table Ti and the XML index Xp, you can join the parent_id and parent_minor_id columns of sys.internal_tables to the object_id and index_id columns of sys.xml_indexes.G aşağıdaki örneğe bakın.
Kayma dizini meta veriler görüntüleme
Kayma dizinleri meta veriler meta veriler XML dizinler için çoğunlukla eşdeğerdir.Fark var, kayma dizinleri kullanmaksys.spatial_indexessys.xml_indexes ve yerine, bir kayma dizini. kayma parametrelerini görüntülemek içinsys.spatial_index_tessellations kullanmanız gerekebilir
Aşağıda, bir iç tablo meta veriler yapısını kayma bir dizini gösterir.
Katalog görünümü şekilde gösterildiği ilişkileri anlamak için kabul kayma bir dizinSiüzerinde tablo T , oluşturulan. meta veriler tablonun bulunduğusys.Tables Katalog görünümü kayma dizin için meta veriler ise sys.spatial_index_tessellations Katalog görünümü. sys.spatial_indexes Katalog görünümü de İç tablo meta verilerTi tarafından oluşturulan, SQL Serverkayma dizin verileri kaldırmak için bulunduğu sys.internal_tables görünümü.
İç tablo arasındaki ilişkiyi bulmak içinTi , kullanıcı tablo T yapabilirsiniz birleştirmek sys.tables görünümü. object_id sütununa sys.internal_tables görünümünün parent_id sütun İç tablo arasındaki ilişkiyi bulmak içinTi , sckayma dizin, birleştirmek ve parent_idparent_minor_idsys.spatial_indexesindex_id sütunlar ve object_idsys.internal_tablessütunlarının.Daha fazla bilgi için bu konuda daha sonra L, örneğe bakın.
Hizmet Aracısı meta veriler görüntüleme
Aşağıdaki resimde bir Hizmet Aracısı sırasına bir iç tablo meta veriler yapısını gösterir.Hizmet Aracısı kuyrukları, Hizmet Aracısı iletileri, sorgu bildirimleri ve olay bildirimlerini kullanın.Buna ek olarak, Hizmet Aracısı özelliği de bir iç tablo tüm veritabanlarının tüm hizmetlerini Hizmet Aracısı hakkındaki bilgileri depolamak için kullanır., Bu iç tablo olantempdb Sistem veritabanının.
Query bildirim meta veriler görüntüleme
Bir iç tablo meta veriler yapısını bir sorgu bildirim aşağıda gösterilmiştir abonelik.İç tablo, sorgu bildirim aboneliği parametrelerinin depolamak için kullanılır.
İç tablo depolama
İç tablo aynı dosya grubu üst varlık olarak yerleştirilir.Katalog sorgu satır dışı örnek, satır için iç tabloları kullanan sayfaların geri dönmek için F aşağıda gösterilen ve büyük nesne (LOB) verilerini kullanabilirsiniz.
You can use the sp_spaceused system procedure to return space usage data for internal tables.sp_spaceused reports internal table space in the following ways:
Bir sıra adı belirtilmişse, iç temel tablo ilişkili sıra başvurulan ve depolama, tüketim bildirilir.
XML dizinler, dizinler kayma ve tam metin dizinlerini iç tablo tarafından kullanılan sayfa eklenirindex_size sütun.Bir tablo ya da dizinli görünüm adı belirtilmişse, XML dizinler, kayma dizinler ve bu nesne için tam metin dizinlerini sayfa sütunlarında eklenirayrılmış and index_size.
Örnekler
Katalog görünümleri kullanarak iç tablo meta veriler sorgulamak için aşağıdaki örneklerde gösterilmiştir.
C.Sys.objects katalog görünümünden sütun devralan iç tabloları göster
SELECT * FROM sys.objects WHERE type = 'IT';
B.(Hangi sys.objects devralınır, dahil) tüm iç tablo meta veriler döndürür.
SELECT * FROM sys.internal_tables;
C.İç tablo sütunlar ve sütun veri türlerini döndürür.
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
JOIN sys.columns AS col ON itab.object_id = col.object_id
JOIN sys.types AS typ ON typ.user_type_id = col.user_type_id
ORDER BY itab.name, col.column_id;
D.İç tablo dizinleri döndürür.
SELECT SCHEMA_NAME(itab.schema_id) AS schema_name
, itab.name AS internal_table_name
, idx.*
FROM sys.internal_tables AS itab
JOIN sys.indexes AS idx ON itab.object_id = idx.object_id
ORDER BY itab.name, idx.index_id;
E.İç tablo istatistiklerini döndürür
SELECT SCHEMA_NAME(itab.schema_id) AS schema_name
,itab.name AS internal_table_name
, s.*
FROM sys.internal_tables AS itab
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 bilgileri
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
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)
JOIN sys.partitions AS p
ON p.object_id = idx.object_id AND p.index_id = idx.index_id
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 dizinler iç tablo meta veriler döndürür.
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
JOIN sys.tables AS t
ON it.parent_id = t.object_id
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ç tablo meta veriler döndürür.
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
JOIN sys.service_queues AS q ON it.parent_id = q.object_id
WHERE it.internal_type_desc = 'QUEUE_MESSAGES';
GO
I.Hizmet Aracısı hizmeti tüm iç tablo meta veriler döndürür.
SELECT *
FROM tempdb.sys.internal_tables
WHERE internal_type_desc = 'SERVICE_BROKER_MAP';
GO
J.Sorgu bildirim abonelikleri iç tablo meta veriler döndürür.
SELECT qn.id AS query_subscription_id
,it.name AS internal_table_name
,it.object_id AS internal_table_id
FROM sys.internal_tables AS it
JOIN sys.dm_qn_subscriptions AS qn ON it.object_id = qn.object_id
WHERE it.internal_type_desc = 'QUERY_NOTIFICATION';
K.Geri kayma dizinler için iç tablo meta veriler
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
,si.name AS spatial_index_name
,si.index_id as spatial_index_id
FROM sys.internal_tables AS it
JOIN sys.tables AS t
ON it.parent_id = t.object_id
JOIN sys.spatial_indexes AS si
ON it.parent_id = si.object_id
AND it.parent_minor_id = si.index_id
WHERE it.internal_type_desc = 'EXTENDED_INDEXES';
GO
See Also