sys.indexes (Transact-SQL)

Berlaku untuk: SQL Server Azure 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 = Heap
index_id int ID indeks. index_id hanya unik dalam objek .

0 = Timbunan

1 = Indeks berkluster

> 1 = Indeks nonkluster
jenis tinyint Jenis indeks:

0 = Timbunan

1 = Rowstore terkluster (pohon B)

2 = Rowstore nonkluster (pohon B)

3 = XML

4 = Spasial

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

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

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

TUMPUKAN

CLUSTERED

TIDAK TERKLUSTER

XML

SPASIAL

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

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

NONCLUSTERED HASH : Indeks HASH NONCLUSTERED hanya didukung pada tabel yang dioptimalkan memori. Tampilan sys.hash_indexes 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 tinyint > 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 memperbolehkan 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 cukup pada tabel.
compression_delay int > 0 = Penundaan kompresi indeks penyimpan kolom 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)), database Azure SQL, 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 memiliki pengoptimalan penyisipan halaman terakhir yang dinonaktifkan.

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

Izin

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

Contoh

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

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 (T-SQL)
sys.filegroups (Transact-SQL)
sys.partition_schemes (T-SQL)
Mengkueri FAQ Katalog Sistem SQL Server
OLTP Dalam Memori (Pengoptimalan Dalam Memori)