Sdílet prostřednictvím


sys.dm_db_missing_index_columns (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrací informace o sloupcích tabulky v databázi, kterým chybí index. sys.dm_db_missing_index_columns je dynamická řídící funkce.

Syntaxe

sys.dm_db_missing_index_columns(index_handle)  

Arguments

index_handle
Celé číslo, které jednoznačně identifikuje chybějící index. Lze jej získat z následujících dynamických správních objektů:

sys.dm_db_missing_index_details (Transact-SQL)

sys.dm_db_missing_index_groups (Transact-SQL)

Vrácená tabulka

Název sloupce Datový typ Description
column_id int ID sloupce.
column_name sysname Název sloupce tabulky.
column_usage Varchar(20) Jak je sloupec použit dotazem. Možné hodnoty a jejich popisy jsou:

ROVNOST: Sloupec přispívá k predikátu, který vyjadřuje rovnost, ve tvaru:
table.column = constant_value

NEROVNOST: Sloupec přispívá k predikátu, který vyjadřuje nerovnost, například predikátu tvaru: table.column>constant_value. Každý srovnávací operátor jiný než "=" vyjadřuje nerovnost.

ZAHRNOUT: Sloupec se nepoužívá k vyhodnocení predikátu, ale z jiného důvodu, například k pokrytí dotazu.

Poznámky

Informace vrácené pomocí jsou sys.dm_db_missing_index_columns aktualizovány, když je dotaz optimalizován optimalizátorem dotazů, a nejsou uchovávány. Chybějící informace v indexu jsou uchovávány pouze do restartu databázového enginu. Správci databáze by měli pravidelně vytvářet záložní kopie chybějících indexových informací, pokud je chtějí po recyklaci serveru zachovat. Pomocí sloupce sqlserver_start_time v sys.dm_os_sys_info vyhledejte čas posledního spuštění databázového stroje.

Konzistence transakcí

Pokud transakce vytvoří nebo zanechá tabulku, řádky obsahující chybějící indexové informace o ztracených objektech jsou z tohoto dynamického objektu správy odstraněny, čímž je zachována konzistence transakcí.

Povolení

Uživatelům musí být uděleno oprávnění ZOBRAZIT STAV SERVERU nebo jakékoli oprávnění, které znamená oprávnění ZOBRAZIT STAV SERVERU, aby mohli dotazovat tuto funkci dynamické správy.

Oprávnění pro SQL Server 2022 a novější

Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU na serveru.

Examples

Následující příklad provádí dotaz proti tabulce Address a poté dotaz pomocí dynamického pohledu sys.dm_db_missing_index_columns správy, aby vrátil sloupce tabulky, kterým chybí index.

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  

Chybějící návrhy indexů by měly být pokud možno kombinovány mezi sebou a s existujícími indexy v aktuální databázi. Naučte se, jak tyto návrhy aplikovat v ladění, aby byly indexy bez shluku naladěny.

Další kroky

Více o chybějící funkci indexu se dozvíte v následujících článcích: