sys.indexes (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Berisi baris per indeks atau tumpukan objek tabular, seperti tabel, tampilan, atau fungsi bernilai tabel.

Nama kolom Jenis data Deskripsi
object_id int ID objek tempat indeks ini berada.
nama nama sysname Nama indeks. name hanya unik dalam objek.

NULL = Timbunan
index_id int ID indeks. index_id hanya unik dalam objek.

0 = Timbunan

1 = Indeks berkluster

> 1 = Indeks nonclustered
jenis kecil Jenis indeks:

0 = Timbunan

1 = Rowstore berkluster (pohon B)

2 = Rowstore nonclustered (B-tree)

3 = XML

4 = Spasial

5 = Indeks penyimpan kolom berkluster. Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.

6 = Indeks penyimpan kolom tidak terkluster. Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

7 = Indeks hash nonclustered. Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.
type_desc nvarchar(60) Deskripsi jenis indeks:

HEAP

CLUSTERED

TIDAK TERKLUSTER

XML

SPASIAL

COLUMNSTORE BERKLUSTER - Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.

NONCLUSTERED COLUMNSTORE - Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

NONCLUSTERED HASH : Indeks HASH NONCLUSTERED hanya didukung pada tabel yang dioptimalkan memori. sys.hash_indexes Tampilan menunjukkan indeks hash saat ini dan properti hash. Untuk informasi selengkapnya, lihat sys.hash_indexes (Transact-SQL). Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.
is_unique bit 1 = Indeks unik.

0 = Indeks tidak unik.

Selalu 0 untuk indeks penyimpan kolom berkluster.
data_space_id int ID ruang data untuk indeks ini. Ruang data adalah grup file atau skema partisi.

0 = object_id adalah fungsi bernilai tabel atau indeks dalam memori.
ignore_dup_key bit 1 = IGNORE_DUP_KEY AKTIF.

0 = IGNORE_DUP_KEY NONAKTIF.
is_primary_key bit 1 = Indeks adalah bagian dari batasan KUNCI PRIMER.

Selalu 0 untuk indeks penyimpan kolom berkluster.
is_unique_constraint bit 1 = Indeks adalah bagian dari batasan UNIK.

Selalu 0 untuk indeks penyimpan kolom berkluster.
fill_factor kecil > 0 = persentase FILLFACTOR yang digunakan saat indeks dibuat atau dibangun kembali.

0 = Nilai default

Selalu 0 untuk indeks penyimpan kolom berkluster.
is_padded bit 1 = PADINDEX AKTIF.

0 = PADINDEX NONAKTIF.

Selalu 0 untuk indeks penyimpan kolom berkluster.
is_disabled bit 1 = Indeks dinonaktifkan.

0 = Indeks tidak dinonaktifkan.
is_hypothetical bit 1 = Indeks bersifat hipotetis dan tidak dapat digunakan langsung sebagai jalur akses data. Indeks hipotetis menyimpan statistik tingkat kolom.

0 = Indeks tidak hipotetis.
allow_row_locks bit 1 = Indeks memungkinkan kunci baris.

0 = Indeks tidak mengizinkan kunci baris.

Selalu 0 untuk indeks penyimpan kolom berkluster.
allow_page_locks bit 1 = Indeks memungkinkan kunci halaman.

0 = Indeks tidak mengizinkan kunci halaman.

Selalu 0 untuk indeks penyimpan kolom berkluster.
has_filter bit 1 = Indeks memiliki filter dan hanya berisi baris yang memenuhi definisi filter.

0 = Indeks tidak memiliki filter.
filter_definition nvarchar(maks) Ekspresi untuk subset baris yang disertakan dalam indeks yang difilter.

NULL untuk heap, indeks yang tidak difilter, atau izin yang tidak mencukup pada tabel.
compression_delay int > 0 = Penundaan pemadatan indeks penyimpan kolom yang ditentukan dalam hitungan menit.

NULL = Penundaan kompresi grup baris indeks penyimpan kolom dikelola secara otomatis.
suppress_dup_key_messages bit 1 = Indeks dikonfigurasi untuk menekan pesan kunci duplikat selama operasi pembangunan ulang indeks.

0 = Indeks tidak dikonfigurasi untuk menekan pesan kunci duplikat selama operasi pembangunan ulang indeks.

Berlaku untuk: SQL Server (Dimulai dengan SQL Server 2017 (14.x)), Azure SQL Database, dan Azure SQL Managed Instance
auto_created bit 1 = Indeks dibuat oleh penyetelan otomatis.

0 = Indeks dibuat oleh pengguna.

Berlaku untuk: Azure SQL Database
optimize_for_sequential_key bit 1 = Indeks mengaktifkan pengoptimalan penyisipan halaman terakhir.

0 = Nilai default. Indeks menonaktifkan pengoptimalan penyisipan halaman terakhir.

Berlaku untuk: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Azure SQL Database, dan Azure SQL Managed Instance

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.

Contoh

Contoh berikut mengembalikan semua indeks untuk tabel Production.Product dalam database AdventureWorks2022.

SELECT i.name AS index_name  
    ,i.type_desc  
    ,is_unique  
    ,ds.type_desc AS filegroup_or_partition_scheme  
    ,ds.name AS filegroup_or_partition_scheme_name  
    ,ignore_dup_key  
    ,is_primary_key  
    ,is_unique_constraint  
    ,fill_factor  
    ,is_padded  
    ,is_disabled  
    ,allow_row_locks  
    ,allow_page_locks  
FROM sys.indexes AS i  
INNER JOIN sys.data_spaces AS ds ON i.data_space_id = ds.data_space_id  
WHERE is_hypothetical = 0 AND i.index_id <> 0   
AND i.object_id = OBJECT_ID('Production.Product');  
GO  

Langkah berikutnya

Tampilan Katalog Objek (Transact-SQL)
Tampilan Katalog (Transact-SQL)
sys.index_columns (T-SQL)
sys.xml_indexes (Transact-SQL)
sys.objects (Transact-SQL)
sys.key_constraints (Transact-SQL)
sys.filegroups (Transact-SQL)
sys.partition_schemes (T-SQL)
Mengkueri TANYA JAWAB Umum Katalog Sistem SQL Server
In-Memory OLTP (Pengoptimalan In-Memory)