sys.dm_db_missing_index_group_stats (Transact-SQL)
Gibt Zusammenfassungsinformationen zu Gruppen fehlender Indizes, außer räumliche Indizes, zurück.
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
group_handle |
int |
Identifiziert eine Gruppe fehlender Indizes. Dieser Bezeichner ist innerhalb des Servers eindeutig. Die anderen Spalten stellen Informationen zu allen Abfragen bereit, für die der Index in der Gruppe als fehlend betrachtet wird. Eine Indexgruppe enthält nur einen Index. |
unique_compiles |
bigint |
Anzahl der Kompilierungen und Neukompilierungen, die von dieser Gruppe fehlender Indizes profitieren würden. Zu diesem Spaltenwert können Kompilierungen und Neukompilierungen vieler verschiedener Abfragen beitragen. |
user_seeks |
bigint |
Die Anzahl von durch Benutzerabfragen verursachten Suchvorgängen, für die der empfohlene Index in der Gruppe hätte verwendet werden können. |
user_scans |
bigint |
Die Anzahl von durch Benutzerabfragen verursachten Scanvorgängen, für die der empfohlene Index in der Gruppe hätte verwendet werden können. |
last_user_seek |
datetime |
Das Datum und die Uhrzeit des letzten durch Benutzerabfragen verursachten Suchvorgangs, für den der empfohlene Index in der Gruppe hätte verwendet werden können. |
last_user_scan |
datetime |
Das Datum und die Uhrzeit des letzten durch Benutzerabfragen verursachten Scanvorgangs, für den der empfohlene Index in der Gruppe hätte verwendet werden können. |
avg_total_user_cost |
float |
Die durchschnittlichen Kosten der Benutzerabfragen, die durch den Index in der Gruppe reduziert werden könnten. |
avg_user_impact |
float |
Durchschnittlicher prozentualer Nutzen, der für Benutzerabfragen entstünde, wenn diese Gruppe fehlender Indizes implementiert würde. Der Wert bedeutet, dass die Abfragekosten durchschnittlich um diesen Prozentsatz verringert würden, wenn diese Gruppe fehlender Indizes implementiert würde. |
system_seeks |
bigint |
Die Anzahl von durch Systemabfragen, beispielsweise Auto Stats-Abfragen, verursachten Suchvorgängen, für die der empfohlene Index in der Gruppe hätte verwendet werden können. Weitere Informationen finden Sie unter Auto Stats-Ereignisklasse. |
system_scans |
bigint |
Die Anzahl von durch Systemabfragen verursachten Scanvorgängen, für die der empfohlene Index in der Gruppe hätte verwendet werden können. |
last_system_seek |
datetime |
Das Datum und die Uhrzeit des letzten durch Systemabfragen verursachten Systemsuchvorgangs, für den der empfohlene Index in der Gruppe hätte verwendet werden können. |
last_system_scan |
datetime |
Das Datum und die Uhrzeit des letzten durch Systemabfragen verursachten Systemscanvorgangs, für den der empfohlene Index in der Gruppe hätte verwendet werden können. |
avg_total_system_cost |
float |
Die durchschnittlichen Kosten der Systemabfragen, die durch den Index in der Gruppe reduziert werden könnten. |
avg_system_impact |
float |
Durchschnittlicher prozentualer Nutzen, der für Systemabfragen entstünde, wenn diese Gruppe fehlender Indizes implementiert würde. Der Wert bedeutet, dass die Abfragekosten durchschnittlich um diesen Prozentsatz verringert würden, wenn diese Gruppe fehlender Indizes implementiert würde. |
Hinweise
Die von sys.dm_db_missing_index_group_stats zurückgegebenen Informationen werden bei jeder Abfrageausführung aktualisiert, nicht bei jeder Abfragekompilierung oder Neukompilierung. Statistiken zur Verwendung sind nicht dauerhaft und werden nur bis zum Neustart von SQL Server aufbewahrt. Datenbankadministratoren sollten regelmäßig Sicherungskopien der Informationen zu fehlenden Indizes erstellen, wenn Sie die Verwendungsstatistiken nach dem Wiederverwenden des Servers beibehalten möchten.
Informationen zum Aktivieren und Deaktivieren der Auflistung mit Informationen zu fehlenden Indizes finden Sie unter Informationen zur Funktion für fehlende Indizes.
Informationen zu den Beschränkungen dieses Features finden Sie unter Einschränkungen der Funktion für fehlende Indizes.
Informationen zur Transaktionskonsistenz in Bezug auf die dynamischen Verwaltungsobjekte für fehlende Indizes finden Sie unter Informationen zur Funktion für fehlende Indizes.
Berechtigungen
Zum Abfragen dieser dynamischen Verwaltungssicht muss den Benutzern die VIEW SERVER STATE-Berechtigung oder eine Berechtigung, die die VIEW SERVER STATE-Berechtigung impliziert, erteilt werden.
Beispiele
Die folgenden Beispiele veranschaulichen die Verwendung der dynamischen Verwaltungssicht sys.dm_db_missing_index_group_stats.
A. Suchen der 10 fehlenden Indizes mit der größten zu erwartenden Verbesserung für Benutzerabfragen
Mit der folgenden Abfrage werden in absteigender Reihenfolge die 10 fehlenden Indizes bestimmt, die die größte zu erwartende Gesamtverbesserung für Benutzerabfragen bewirken würden.
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. Suchen der einzelnen fehlenden Indizes und ihrer Spaltendetails für eine bestimmte Gruppe fehlender Indizes
Mit der folgenden Abfrage werden die fehlenden Indizes bestimmt, aus denen eine bestimmte Gruppe fehlender Indizes besteht, und deren Spaltendetails angezeigt. Für dieses Beispiel lautet das Handle der Gruppe fehlender Indizes 24.
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;
Die Abfrage stellt den Namen der Datenbank, des Schemas und der Tabelle bereit, für die ein Index fehlt. Außerdem werden die Namen der Spalten zurückgegeben, die für den Indexschlüssel verwendet werden sollten. Listen Sie beim Schreiben der CREATE INDEX-DDL-Anweisung zum Implementieren fehlender Indizes zuerst Gleichheitsspalten und dann Ungleichheitsspalten in der ON <table_name>-Klausel der CREATE INDEX-Anweisung auf. Eingeschlossene Spalten sollten in der INCLUDE-Klausel der CREATE INDEX-Anweisung aufgeführt werden. Für eine effektive Reihenfolge der Gleichheitsspalten sortieren Sie sie nach ihrer Selektivität, wobei die selektivsten Spalten zuerst (am weitesten links in der Spaltenliste) aufgeführt werden.
Weitere Informationen zum Verwenden der von diesen dynamischen Verwaltungsobjekten zurückgegebenen Informationen beim Schreiben von CREATE INDEX-DDL-Anweisungen finden Sie unter Verwenden von fehlenden Indexinformationen zum Schreiben von CREATE INDEX-Anweisungen.
Siehe auch