sys.internal_tables (T-SQL)

Berlaku untuk:SQL Server

Mengembalikan satu baris untuk setiap objek yang merupakan tabel internal. Tabel internal secara otomatis dihasilkan oleh SQL Server untuk mendukung berbagai fitur. Misalnya, saat Anda membuat indeks XML utama, SQL Server secara otomatis membuat tabel internal untuk mempertahankan data dokumen XML yang dihancurkan. Tabel internal muncul dalam skema sys setiap database dan memiliki nama unik yang dihasilkan sistem yang menunjukkan fungsinya, misalnya, xml_index_nodes_2021582240_32001 atau queue_messages_1977058079

Tabel internal tidak berisi data yang dapat diakses pengguna, dan skemanya diperbaiki dan tidak dapat diubah. Anda tidak dapat mereferensikan nama tabel internal dalam pernyataan Transact-SQL. Misalnya, Anda tidak dapat menjalankan pernyataan seperti SELECT * FROM <sys.internal_table_name>. Namun, Anda dapat mengkueri tampilan katalog untuk melihat metadata tabel internal.

Nama kolom Jenis data Deskripsi
<Kolom yang diwarisi dari sys.objects> Untuk daftar kolom yang diwarisi tampilan ini, lihat sys.objects (Transact-SQL).
internal_type kecil Jenis tabel internal:

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

205 = query_notification

206 = service_broker_map

207 = extended_indexes (seperti indeks spasial)

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) Deskripsi jenis tabel internal:

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_CATALOG_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 ID induk, terlepas dari apakah itu cakupan skema atau tidak. Jika tidak, 0 jika tidak ada induk.

= object_id antrean queue_messages

= xml_index_nodes object_id indeks xml

= fulltext_catalog_freelist fulltext_catalog_id katalog teks lengkap

= fulltext_index_map object_id indeks teks lengkap

query_notification, atau service_broker_map = 0

= extended_indexes object_id indeks yang diperluas, seperti indeks spasial

object_id tabel tempat pelacakan tabel diaktifkan = change_tracking
parent_minor_id int ID kecil induk.

= xml_index_nodes index_id indeks XML

= extended_indexes index_id indeks yang diperluas, seperti indeks spasial

0 = queue_messages, fulltext_catalog_freelist, fulltext_index_map, query_notification, service_broker_map, atau change_tracking
lob_data_space_id int Nilai bukan nol adalah ID ruang data (grup file atau partisi-skema) yang menyimpan data objek besar (LOB) untuk tabel ini.
filestream_data_space_id int Disiapkan untuk penggunaan masa mendatang.

Izin

Visibilitas metadata dalam tampilan katalog terbatas pada keamanan yang dimiliki pengguna, atau di mana pengguna diberikan beberapa izin. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.

Keterangan

Tabel internal ditempatkan pada grup file yang sama dengan entitas induk. Anda dapat menggunakan kueri katalog yang diperlihatkan dalam Contoh F di bawah ini untuk mengembalikan jumlah tabel internal halaman yang digunakan untuk data dalam baris, di luar baris, dan objek besar (LOB).

Anda dapat menggunakan prosedur sistem sp_spaceused untuk mengembalikan data penggunaan ruang untuk tabel internal. sp_spaceused melaporkan ruang tabel internal dengan cara berikut:

  • Ketika nama antrean ditentukan, tabel internal yang mendasar yang terkait dengan antrean direferensikan dan konsumsi penyimpanannya dilaporkan.

  • Halaman yang digunakan oleh tabel internal indeks XML, indeks spasial, dan indeks teks lengkap disertakan dalam kolom index_size . Saat tabel atau nama tampilan terindeks ditentukan, halaman untuk indeks XML, indeks spasial , dan indeks teks lengkap untuk objek tersebut disertakan dalam kolom yang dicadangkan dan index_size.

Contoh

Contoh berikut menunjukkan cara mengkueri metadata tabel internal dengan menggunakan tampilan katalog.

J. Perlihatkan tabel internal yang mewarisi kolom dari tampilan katalog sys.objects

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

B. Mengembalikan semua metadata tabel internal (termasuk yang diwarisi dari sys.objects)

SELECT * FROM sys.internal_tables;  

C. Mengembalikan kolom tabel internal dan tipe data kolom

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. Mengembalikan indeks tabel internal

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. Mengembalikan statistik tabel internal

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. Mengembalikan informasi partisi tabel internal dan unit alokasi

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. Mengembalikan metadata tabel internal untuk indeks 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  
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. Mengembalikan metadata tabel internal untuk antrean 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  
JOIN sys.service_queues  AS  q ON it.parent_id = q.object_id  
WHERE it.internal_type_desc = 'QUEUE_MESSAGES';  
GO  

I. Mengembalikan metadata tabel internal untuk semua layanan Service Broker

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

Lihat Juga

Tampilan Katalog (Transact-SQL)
Tampilan Katalog Objek (Transact-SQL)