Bagikan melalui


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: