sys.dm_db_missing_index_columns (Transact-SQL)

Gibt Informationen zu Spalten von Datenbanktabellen zurück, für die kein Index vorhanden ist, mit Ausnahme von räumlichen Indizes. sys.dm_db_missing_index_columns ist eine dynamische Verwaltungsfunktion.

Syntax

sys.dm_db_missing_index_columns(index_handle)

Argumente

Zurückgegebene Tabelle

Spaltenname

Datentyp

Beschreibung

column_id

int

ID der Spalte.

column_name

sysname

Name der Tabellenspalte.

column_usage

varchar(20)

Art der Verwendung der Spalte durch die Abfrage. Folgende Werte sind möglich:

Wert

Beschreibung

EQUALITY

Die Spalte wird in ein Prädikat einbezogen, das Gleichheit ausdrückt und folgendes Format aufweist:

table.column =constant_value

INEQUALITY

Die Spalte wird in ein Prädikat einbezogen, das Ungleichheit ausdrückt, z. B. ein Prädikat in folgendem Format:

table.column > constant_value

Jeder Vergleichsoperator außer "=" drückt Ungleichheit aus.

INCLUDE

Die Spalte wird nicht zur Auswertung eines Prädikats, sondern aus einem anderen Grund verwendet, z. B. zum Abdecken einer Abfrage.

Hinweise

Von sys.dm_db_missing_index_columns zurückgegebene Informationen werden aktualisiert, wenn eine Abfrage vom Abfrageoptimierer optimiert wird. Sie werden nicht persistent gespeichert. Informationen zu fehlenden Indizes werden nur bis zum Neustart von SQL Server aufbewahrt. Datenbankadministratoren sollten regelmäßig Sicherungskopien der Informationen zu fehlenden Indizes erstellen, wenn Sie sie nach dem Wiederverwenden des Servers beibehalten möchten.

Transaktionskonsistenz

Wenn durch eine Transaktion eine Tabelle erstellt oder gelöscht wird, werden die Zeilen mit Informationen zu fehlenden Indizes bezüglich der gelöschten Objekte aus diesem dynamischen Verwaltungsobjekt entfernt, damit die Transaktionskonsistenz erhalten bleibt.

Berechtigungen

Benutzern muss die VIEW SERVER STATE-Berechtigung oder eine Berechtigung, die die VIEW SERVER STATE-Berechtigung impliziert, erteilt werden, damit sie diese dynamische Verwaltungsfunktion abfragen können.

Beispiele

Im folgenden Beispiel wird eine Abfrage für die Address-Tabelle und anschließend eine Abfrage mithilfe der dynamischen Verwaltungssicht sys.dm_db_missing_index_columns ausgeführt, um die Tabellenspalten zurückzugeben, die keinen Index aufweisen.

USE AdventureWorks2012;
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

Siehe auch

Verweis

sys.dm_db_missing_index_details (Transact-SQL)

sys.dm_db_missing_index_groups (Transact-SQL)

sys.dm_db_missing_index_group_stats (Transact-SQL)