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: