Bagikan melalui


sys.dm_db_missing_index_columns (T-SQL)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Mengembalikan informasi tentang kolom tabel database yang tidak memiliki indeks. sys.dm_db_missing_index_columns adalah fungsi manajemen dinamis.

Sintaks

sys.dm_db_missing_index_columns(index_handle)  

Argumen

index_handle
Bilangan bulat yang secara unik mengidentifikasi indeks yang hilang. Ini dapat diperoleh dari objek manajemen dinamis berikut:

sys.dm_db_missing_index_details (T-SQL)

sys.dm_db_missing_index_groups (T-SQL)

Tabel Dikembalikan

Nama kolom Jenis data Deskripsi
column_id int ID kolom.
column_name nama sysname Nama kolom tabel.
column_usage varchar(20) Bagaimana kolom digunakan oleh kueri. Nilai yang mungkin dan deskripsinya adalah:

EQUALITY: Kolom berkontribusi pada predikat yang mengekspresikan kesetaraan, dari formulir:
constant_value table.column =

INEQUALITY: Kolom berkontribusi pada predikat yang mengekspresikan ketidaksamaan, misalnya, predikat formulir: table.column>constant_value. Operator perbandingan apa pun selain "=" mengekspresikan ketidaksamaan.

INCLUDE: Kolom tidak digunakan untuk mengevaluasi predikat, tetapi digunakan karena alasan lain, misalnya, untuk mencakup kueri.

Keterangan

Informasi yang dikembalikan oleh sys.dm_db_missing_index_columns diperbarui saat kueri dioptimalkan oleh pengoptimal kueri, dan tidak dipertahankan. Informasi indeks yang hilang disimpan hanya sampai mesin database dimulai ulang. Administrator database harus secara berkala membuat salinan cadangan informasi indeks yang hilang jika mereka ingin menyimpannya setelah daur ulang server. sqlserver_start_time Gunakan kolom di sys.dm_os_sys_info untuk menemukan waktu mulai mesin database terakhir.

Konsistensi Transaksi

Jika transaksi membuat atau menghilangkan tabel, baris yang berisi informasi indeks yang hilang tentang objek yang dihilangkan dihapus dari objek manajemen dinamis ini, mempertahankan konsistensi transaksi.

Izin

Pengguna harus diberikan izin TAMPILKAN STATUS SERVER atau izin apa pun yang menyiratkan izin TAMPILKAN STATUS SERVER untuk mengkueri fungsi manajemen dinamis ini.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.

Contoh

Contoh berikut menjalankan kueri terhadap Address tabel lalu menjalankan kueri menggunakan sys.dm_db_missing_index_columns tampilan manajemen dinamis untuk mengembalikan kolom tabel yang kehilangan indeks.

USE AdventureWorks2022;  
GO  
SELECT City, StateProvinceID, PostalCode  
FROM Person.Address  
WHERE StateProvinceID = 9;  
GO  
SELECT mig.*, statement AS table_name,  
    column_id, column_name, column_usage  
FROM sys.dm_db_missing_index_details AS mid  
CROSS APPLY sys.dm_db_missing_index_columns (mid.index_handle)  
INNER JOIN sys.dm_db_missing_index_groups AS mig ON mig.index_handle = mid.index_handle  
ORDER BY mig.index_group_handle, mig.index_handle, column_id;  
GO  

Saran indeks yang hilang harus digabungkan jika memungkinkan satu sama lain, dan dengan indeks yang ada dalam database saat ini. Pelajari cara menerapkan saran ini dalam menyetel indeks nonclustered dengan saran indeks yang hilang.

Langkah berikutnya

Pelajari selengkapnya tentang fitur indeks yang hilang di artikel berikut ini: