Udostępnij za pomocą


sys.dm_db_missing_index_columns (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca informacje o kolumnach tabeli bazy danych, w których brakuje indeksu. sys.dm_db_missing_index_columns jest dynamiczną funkcją zarządzania.

Składnia

sys.dm_db_missing_index_columns(index_handle)  

Arguments

index_handle
Liczba całkowita, która jednoznacznie identyfikuje brakujący indeks. Można ją uzyskać z następujących dynamicznych obiektów zarządzania:

sys.dm_db_missing_index_details (Transact-SQL)

sys.dm_db_missing_index_groups (Transact-SQL)

Zwracana tabela

Nazwa kolumny Typ danych Description
column_id int Identyfikator kolumny.
column_name sysname Nazwa kolumny tabeli.
column_usage varchar(20) Jak kolumna jest wykorzystywana przez zapytanie. Możliwe wartości i ich opisy to:

RÓWNOŚĆ: Kolumna przyczynia się do predykatu wyrażającego równość, o postaci:
table.column = constant_value

NIERÓWNOŚĆ: Kolumna przyczynia się do predykatu wyrażającego nierówność, na przykład do predykatu o postaci: table.column>constant_value. Każdy operator porównania inny niż "=" wyraża nierówność.

INCLUDE: Kolumna nie służy do oceny predykatu, lecz z innego powodu, na przykład do pokrycia zapytania.

Uwagi

Informacje zwracane przez sys.dm_db_missing_index_columns są aktualizowane, gdy zapytanie jest optymalizowane przez optymalizator zapytań i nie są utrwalane. Brakujące informacje indeksowe są przechowywane tylko do momentu ponownego uruchomienia silnika bazy danych. Administratorzy baz danych powinni okresowo tworzyć kopie zapasowe brakujących informacji indeksowych, jeśli chcą je zachować po recyklingu serwera. Użyj kolumny sqlserver_start_time w sys.dm_os_sys_info , aby znaleźć ostatni czas uruchamiania aparatu bazy danych.

Spójność transakcji

Jeśli transakcja tworzy lub upuszcza tabelę, wiersze zawierające brakujące informacje indeksowe o upuszczonych obiektach są usuwane z tego dynamicznego obiektu zarządzania, zachowując spójność transakcji.

Permissions

Użytkownicy muszą otrzymać uprawnienia VIEW SERVER STATE lub dowolne uprawnienia implikujące VIEW SERVER STATE do zapytań o tę dynamiczną funkcję zarządzania.

Uprawnienia dla programu SQL Server 2022 i nowszych

Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.

Przykłady

Poniższy przykład wykonuje zapytanie względem tabeli Address , a następnie zapytanie za pomocą dynamicznego widoku sys.dm_db_missing_index_columns zarządzania, aby zwrócić kolumny tabeli, w których brakuje indeksu.

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  

Brakujące sugestie indeksów powinny być łączone, jeśli to możliwe, ze sobą oraz z istniejącymi indeksami w aktualnej bazie danych. Dowiedz się, jak stosować te sugestie w sposób dostrojony, nieklastrowany indeks z brakującymi sugestiami indeksowymi.

Dalsze kroki

Dowiedz się więcej o brakującej funkcji indeksu w następujących artykułach: