Aracılığıyla paylaş


sys.dm_db_missing_index_group_stats (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Eksik indeksler grupları hakkında özet bilgiler döndürür, mekânsal indeksler hariç.

Azure SQL Veritabanı'nda dinamik yönetim görünümleri, veritabanının kapsamasını etkileyecek bilgileri veya kullanıcının erişimi olan diğer veritabanları hakkındaki bilgileri kullanıma sunmaz. Bu bilgilerin açığa çıkmasını önlemek için, bağlı kiracıya ait olmayan verileri içeren her satır filtrelenir.

Sütun adı Veri türü Description
group_handle int Eksik bir grup indeksleri belirler. Bu tanımlayıcı sunucu genelinde benzersizdir.

Diğer sütunlar, gruptaki indeksin eksik olarak kabul edilen tüm sorgular hakkında bilgi sağlar.

Bir indeks grubu yalnızca bir indeks içerir.

sys.dm_db_missing_index_groups içinde birleştirilebilirindex_group_handle.
unique_compiles bigint Bu eksik endeks grubundan fayda sağlayacak derleme ve yeniden derleme sayısı. Birçok farklı sorgunun derlenmesi ve yeniden derlenmesi bu sütun değerine katkıda bulunabilir.
user_seeks bigint Gruptaki önerilen indeksin kullanılabileceği kullanıcı sorguları nedeniyle yapılan arama sayısı.
user_scans bigint Gruptaki önerilen indeksin kullanılabileceği kullanıcı sorguları nedeniyle yapılan tarama sayısı.
last_user_seek datetime Gruptaki önerilen indeksin kullanılabileceği kullanıcı sorguları nedeniyle son arama tarihi ve saati.
last_user_scan datetime Grupta önerilen indeksin kullanılabileceği kullanıcı sorguları nedeniyle son taramanın tarihi ve saati.
avg_total_user_cost float Gruptaki indeks tarafından azaltılabilen kullanıcı sorgularının ortalama maliyeti.
avg_user_impact float Bu eksik endeks grubu uygulanırsa kullanıcı sorgularının yaşayabileceği ortalama yüzde faydası. Bu değer, eksik endeks grubu uygulansaydı sorgu maliyetinin ortalama olarak bu yüzdeyi düşeceği anlamına gelir.
system_seeks bigint Sistem sorguları (örneğin otomatik istatistik sorguları) nedeniyle oluşturulan ve gruptaki önerilen indeksin kullanılabileceği arama sayısı. Daha fazla bilgi için Otomatik İstatistik Etkinlik Sınıfına bakınız.
system_scans bigint Grupta önerilen indeksin kullanılabileceği sistem sorguları nedeniyle yapılan tarama sayısı.
last_system_seek datetime Gruptaki önerilen indeksin kullanılabileceği sistem sorguları nedeniyle son sistem aramasının tarihi ve saati.
last_system_scan datetime Gruptaki önerilen indeksin kullanılabileceği sistem sorguları nedeniyle son sistem taramasının tarihi ve saati.
avg_total_system_cost float Gruptaki endeks tarafından azaltılabilen sistem sorgularının ortalama maliyeti.
avg_system_impact float Bu eksik endeks grubu uygulanırsa sistem sorgularının yaşanabileceği ortalama yüzde faydası. Bu değer, eksik endeks grubu uygulansaydı sorgu maliyetinin ortalama olarak bu yüzdeyi düşeceği anlamına gelir.

Açıklamalar

Geri sys.dm_db_missing_index_group_stats dönen bilgiler, her sorgu derlemesi veya yeniden derleme ile değil, her sorgu yürütülmesiyle güncellenir. Kullanım istatistikleri kalıcı olmaz ve yalnızca veritabanı motoru yeniden başlatılana kadar saklanır. Veritabanı yöneticileri, sunucu geri dönüşümünden sonra kullanım istatistiklerini korumak istiyorlarsa, eksik indeks bilgilerinin yedeği olarak düzenli olarak yedeklemelidir. sqlserver_start_time Son veritabanı altyapısı başlangıç zamanını bulmak için sys.dm_os_sys_info sütununu kullanın.

Uyarı

Bu DMV için sonuç seti 600 satırla sınırlıdır. Her satırda eksik bir indeks bulunur. 600'den fazla eksik indeksiniz varsa, mevcut eksik indeksleri ele almalısınız ki daha yeni olanlara bakabilesiniz.

Eksik bir indeks grubu, aynı indekse ihtiyaç duyan birkaç sorguya sahip olabilir. Bu DMV'de belirli bir indeks gerektiren bireysel sorgular hakkında daha fazla bilgi için bkz. sys.dm_db_missing_index_group_stats_query.

Permissions

Bu dinamik yönetim görünümünü sorgulamak için kullanıcılara VIEW SERVER STATE izni veya VIEW SERVER STATE izni verilen herhangi bir izin verilmelidir.

SQL Server 2022 ve üzeri için izinler

Sunucuda SUNUCU PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.

Örnekler

Aşağıdaki örnekler dinamik yönetim görünümünün sys.dm_db_missing_index_group_stats nasıl kullanılacağını göstermektedir. Eksik indekslerin kümelenmiş olmayan indekslerle uyumlu kullanımı hakkında daha fazla bilgi edinin.

A. Kullanıcı sorgularında en yüksek beklenen iyileşmeye sahip eksik 10 indeks bulun

Aşağıdaki sorgu, kullanıcı sorguları için azalan sırayla en yüksek beklenen kümülatif iyileşmeyi sağlayan 10 eksik indeksin hangisinin gerçekleşeceğini belirler.

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. Eksik olan bireysel indeksleri ve belirli bir eksik indeks grubu için sütun detaylarını bulun

Aşağıdaki sorgu, eksik indekslerin belirli bir eksik indeks grubunu oluşturduğunu belirler ve onların sütun detaylarını gösterir. Bu örnek için, eksik indeks group_handle 24'tür.

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;  

Bu sorgu, eksik bir indeksin bulunduğu veritabanının, şemanın ve tablonun adını sağlar. Ayrıca indeks anahtarı için kullanılması gereken sütunların isimlerini de sağlar. Eksik indeksleri uygulamak için CREATE INDEX DDL ifadesini yazarken, önce eşitlik sütunlarını, ardından CREATE INDEX ifadesinin ON <table_name> maddesinde eşitsizlik sütunlarını listeleyin. Dahil edilen sütunlar, CREATE INDEX ifadesinin INCLUDE maddesinde listelenmelidir. Eşitlik sütunları için etkili bir sırayı belirlemek için, onları seçiciliklerine göre sıralayın ve en seçici sütunları önce listeleyin (sütun listesinde en sol). Eksik indeks önerilerini nasıl uygulayacağınızı öğrenin.

Sonraki Adımlar

Eksik indeks özelliği hakkında daha fazla bilgiyi aşağıdaki makalelerde bulabilirsiniz: