sys.dm_db_missing_index_group_stats (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Mengembalikan informasi ringkasan tentang grup indeks yang hilang, tidak termasuk indeks spasial.
Di Azure SQL Database, tampilan manajemen dinamis tidak dapat mengekspos informasi yang akan memengaruhi penahanan database atau mengekspos informasi tentang database lain yang dapat diakses pengguna. Untuk menghindari mengekspos informasi ini, setiap baris yang berisi data yang bukan milik penyewa yang tersambung difilter.
Nama kolom | Jenis data | Deskripsi |
---|---|---|
group_handle | int | Mengidentifikasi sekelompok indeks yang hilang. Pengidentifikasi ini unik di seluruh server. Kolom lain menyediakan informasi tentang semua kueri di mana indeks dalam grup dianggap hilang. Grup indeks hanya berisi satu indeks. Dapat digabungkan ke index_group_handle dalam sys.dm_db_missing_index_groups. |
unique_compiles | bigint | Jumlah kompilasi dan kompilasi ulang yang akan mendapat manfaat dari grup indeks yang hilang ini. Kompilasi dan kompilasi ulang dari banyak kueri yang berbeda dapat berkontribusi pada nilai kolom ini. |
user_seeks | bigint | Jumlah pencarian yang disebabkan oleh kueri pengguna yang dapat digunakan oleh indeks yang direkomendasikan dalam grup. |
user_scans | bigint | Jumlah pemindaian yang disebabkan oleh kueri pengguna yang dapat digunakan oleh indeks yang direkomendasikan dalam grup. |
last_user_seek | datetime | Tanggal dan waktu pencarian terakhir yang disebabkan oleh kueri pengguna yang dapat digunakan oleh indeks yang direkomendasikan dalam grup. |
last_user_scan | datetime | Tanggal dan waktu pemindaian terakhir yang disebabkan oleh kueri pengguna yang dapat digunakan oleh indeks yang direkomendasikan dalam grup. |
avg_total_user_cost | float | Biaya rata-rata kueri pengguna yang dapat dikurangi oleh indeks dalam grup. |
avg_user_impact | float | Manfaat persentase rata-rata yang dapat dialami kueri pengguna jika grup indeks yang hilang ini diterapkan. Nilai berarti bahwa biaya kueri akan rata-rata turun berdasarkan persentase ini jika grup indeks yang hilang ini diterapkan. |
system_seeks | bigint | Jumlah pencarian yang disebabkan oleh kueri sistem, seperti kueri statistik otomatis, yang dapat digunakan oleh indeks yang direkomendasikan dalam grup. Untuk informasi selengkapnya, lihat Kelas Peristiwa Statistik Otomatis. |
system_scans | bigint | Jumlah pemindaian yang disebabkan oleh kueri sistem yang dapat digunakan oleh indeks yang direkomendasikan dalam grup. |
last_system_seek | datetime | Tanggal dan waktu pencarian sistem terakhir yang disebabkan oleh kueri sistem yang dapat digunakan oleh indeks yang direkomendasikan dalam grup. |
last_system_scan | datetime | Tanggal dan waktu pemindaian sistem terakhir yang disebabkan oleh kueri sistem yang dapat digunakan oleh indeks yang direkomendasikan dalam grup. |
avg_total_system_cost | float | Biaya rata-rata kueri sistem yang dapat dikurangi oleh indeks dalam grup. |
avg_system_impact | float | Manfaat persentase rata-rata yang dapat dialami kueri sistem jika grup indeks yang hilang ini diterapkan. Nilai berarti bahwa biaya kueri akan rata-rata turun berdasarkan persentase ini jika grup indeks yang hilang ini diterapkan. |
Keterangan
Informasi yang dikembalikan oleh sys.dm_db_missing_index_group_stats
diperbarui oleh setiap eksekusi kueri, bukan oleh setiap kompilasi atau kompilasi ulang kueri. Statistik penggunaan tidak bertahan dan disimpan hanya sampai mesin database dimulai ulang. Administrator database harus secara berkala membuat salinan cadangan informasi indeks yang hilang jika mereka ingin menyimpan statistik penggunaan setelah daur ulang server. sqlserver_start_time
Gunakan kolom di sys.dm_os_sys_info untuk menemukan waktu mulai mesin database terakhir.
Catatan
Hasil yang ditetapkan untuk DMV ini dibatasi hingga 600 baris. Setiap baris berisi satu indeks yang hilang. Jika Anda memiliki lebih dari 600 indeks yang hilang, Anda harus mengatasi indeks yang hilang yang ada sehingga Anda kemudian dapat melihat yang lebih baru.
Satu grup indeks yang hilang mungkin memiliki beberapa kueri yang memerlukan indeks yang sama. Untuk informasi selengkapnya tentang kueri individual yang memerlukan indeks tertentu dalam DMV ini, lihat sys.dm_db_missing_index_group_stats_query.
Izin
Untuk mengkueri tampilan manajemen dinamis ini, pengguna harus diberikan izin TAMPILKAN STATUS SERVER atau izin apa pun yang menyiratkan izin TAMPILKAN STATUS SERVER.
Izin untuk SQL Server 2022 dan yang lebih baru
Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.
Contoh
Contoh berikut mengilustrasikan cara menggunakan sys.dm_db_missing_index_group_stats
tampilan manajemen dinamis. Pelajari selengkapnya tentang panduan untuk menggunakan indeks yang hilang dalam menyetel indeks non-klusifikasi dengan saran indeks yang hilang.
J. Temukan 10 indeks yang hilang dengan peningkatan tertinggi yang diantisipasi untuk kueri pengguna
Kueri berikut menentukan 10 indeks yang hilang mana yang akan menghasilkan peningkatan kumulatif tertinggi yang diantisipasi, dalam urutan menurun, untuk kueri pengguna.
SELECT TOP 10 *
FROM sys.dm_db_missing_index_group_stats
ORDER BY avg_total_user_cost * avg_user_impact * (user_seeks + user_scans)DESC;
B. Menemukan indeks yang hilang individu dan detail kolomnya untuk grup indeks tertentu yang hilang
Kueri berikut menentukan indeks mana yang hilang yang terdiri dari grup indeks tertentu yang hilang, dan menampilkan detail kolomnya. Demi contoh ini, indeks group_handle
yang hilang adalah 24.
SELECT migs.group_handle, mid.*
FROM sys.dm_db_missing_index_group_stats AS migs
INNER JOIN sys.dm_db_missing_index_groups AS mig
ON (migs.group_handle = mig.index_group_handle)
INNER JOIN sys.dm_db_missing_index_details AS mid
ON (mig.index_handle = mid.index_handle)
WHERE migs.group_handle = 24;
Kueri ini menyediakan nama database, skema, dan tabel tempat indeks hilang. Ini juga menyediakan nama kolom yang harus digunakan untuk kunci indeks. Saat menulis pernyataan CREATE INDEX DDL untuk mengimplementasikan indeks yang hilang, cantumkan kolom kesetaraan terlebih dahulu lalu kolom ketidaksetaraan dalam klausa ON <table_name> pernyataan CREATE INDEX. Kolom yang disertakan harus tercantum dalam klausa INCLUDE dari pernyataan CREATE INDEX. Untuk menentukan urutan efektif untuk kolom kesetaraan, urutkan berdasarkan selektivitasnya, cantumkan kolom yang paling selektif terlebih dahulu (paling kiri dalam daftar kolom). Pelajari cara menerapkan saran indeks yang hilang.
Langkah berikutnya
Pelajari selengkapnya tentang fitur indeks yang hilang di artikel berikut ini: