Aracılığıyla paylaş


sys.dm_db_missing_index_columns (Transact-SQL)

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

Indeks eksik olan veritabanı tablosu sütunları hakkında bilgi döndürür. sys.dm_db_missing_index_columns dinamik bir yönetim fonksiyonudur.

Sözdizimi

sys.dm_db_missing_index_columns(index_handle)  

Arguments

index_handle
Eksik bir indeksi benzersiz şekilde tanımlayan bir tam sayı. Aşağıdaki dinamik yönetim nesnelerinden elde edilebilir:

sys.dm_db_missing_index_details (Transact-SQL)

sys.dm_db_missing_index_groups (Transact-SQL)

Döndürülen Tablo

Sütun adı Veri türü Description
column_id int Sütunun kimliği.
column_name sysname Tablo sütununun adı.
column_usage varchar(20) Sorgu sütununun nasıl kullanıldığı. Olası değerler ve tanımları şunlardır:

EŞITLIK: Sütun, eşitliği ifade eden bir önleme katkıda bulunur:
table.column = constant_value

EŞITSIZLIK: Sütun, eşitsizliği ifade eden bir önleme katkıda bulunur; örneğin şu biçimdeki bir önlem: table.column>constant_value. "=" dışındaki herhangi bir karşılaştırma operatörü eşitsizliği ifade eder.

DAHIL: Sütun bir yüklemi değerlendirmek için kullanılmaz, ancak başka bir sebep için, örneğin bir sorguyu kapsamak için kullanılır.

Açıklamalar

Geri sys.dm_db_missing_index_columns dönen bilgiler, bir sorgu sorgu optimizörü tarafından optimize edildiğinde güncellenir ve kalıcı olmaz. Eksik indeks bilgisi yalnızca veritabanı motoru yeniden başlatılana kadar saklanır. Veritabanı yöneticileri, eksik indeks bilgilerini sunucu geri dönüşümünden sonra korumak istiyorlarsa periyodik olarak yedek kopyalarını almalıdır. sqlserver_start_time Son veritabanı altyapısı başlangıç zamanını bulmak için sys.dm_os_sys_info sütununu kullanın.

İşlem Tutarlılığı

Bir işlem bir tablo oluşturuyor veya düşürürse, düşürülen nesnelere dair eksik indeks bilgisini içeren satırlar bu dinamik yönetim nesnesinden çıkarılır ve işlem tutarlılığı korunur.

Permissions

Kullanıcılara, bu dinamik yönetim fonksiyonunu sorgulamak için VIEW SERVER STATE izni veya VIEW SERVER STATE'in izni verilmesi gerekir.

SQL Server 2022 ve üzeri için izinler

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

Örnekler

Aşağıdaki örnek, tabloya karşı bir sorgu Address çalıştırır ve ardından dinamik yönetim görünümünü sys.dm_db_missing_index_columns kullanarak indeks eksik tablo sütunlarını döndürmek için bir sorgu çalıştırır.

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  

Eksik indeks önerileri mümkün olduğunda birbirleriyle ve mevcut veritabanındaki mevcut indekslerle birleştirilmelidir. Bu önerileri, eksik indeks önerileriyle kümelenmiş olmayan indeksleri uyumlu şekilde nasıl uygulayacağınızı öğrenin.

Sonraki Adımlar

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