sys.dm_db_missing_index_group_stats (Transact-SQL)sys.dm_db_missing_index_group_stats (Transact-SQL)

Gilt für: JaSQL Server JaAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Gibt Zusammenfassungsinformationen zu Gruppen fehlender Indizes, außer räumliche Indizes, zurück.Returns summary information about groups of missing indexes, excluding spatial indexes.

In Azure SQL-DatenbankAzure SQL Databasekönnen dynamische Verwaltungssichten keine Informationen verfügbar machen, die sich auf die Datenbankkapselung auswirken würden oder die sich auf andere Datenbanken beziehen, auf die der Benutzer Zugriff hat.In Azure SQL-DatenbankAzure SQL Database, dynamic management views cannot expose information that would impact database containment or expose information about other databases the user has access to. Um zu vermeiden, diese Informationen bereitstellen, wird jede Zeile, die Daten enthält, die zum verbundenen Mandanten gehören nicht herausgefiltert.To avoid exposing this information, every row that contains data that doesn't belong to the connected tenant is filtered out.

SpaltennameColumn name DatentypData type BeschreibungDescription
group_handlegroup_handle intint Identifiziert eine Gruppe fehlender Indizes.Identifies a group of missing indexes. Dieser Bezeichner ist innerhalb des Servers eindeutig.This identifier is unique across the server.

Die anderen Spalten stellen Informationen zu allen Abfragen bereit, für die der Index in der Gruppe als fehlend betrachtet wird.The other columns provide information about all queries for which the index in the group is considered missing.

Eine Indexgruppe enthält nur einen Index.An index group contains only one index.
unique_compilesunique_compiles bigintbigint Anzahl der Kompilierungen und Neukompilierungen, die von dieser Gruppe fehlender Indizes profitieren würden.Number of compilations and recompilations that would benefit from this missing index group. Zu diesem Spaltenwert können Kompilierungen und Neukompilierungen vieler verschiedener Abfragen beitragen.Compilations and recompilations of many different queries can contribute to this column value.
user_seeksuser_seeks bigintbigint Die Anzahl von durch Benutzerabfragen verursachten Suchvorgängen, für die der empfohlene Index in der Gruppe hätte verwendet werden können.Number of seeks caused by user queries that the recommended index in the group could have been used for.
user_scansuser_scans bigintbigint Die Anzahl von durch Benutzerabfragen verursachten Scanvorgängen, für die der empfohlene Index in der Gruppe hätte verwendet werden können.Number of scans caused by user queries that the recommended index in the group could have been used for.
last_user_seeklast_user_seek datetimedatetime 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.Date and time of last seek caused by user queries that the recommended index in the group could have been used for.
last_user_scanlast_user_scan datetimedatetime 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.Date and time of last scan caused by user queries that the recommended index in the group could have been used for.
avg_total_user_costavg_total_user_cost floatfloat Die durchschnittlichen Kosten der Benutzerabfragen, die durch den Index in der Gruppe reduziert werden könnten.Average cost of the user queries that could be reduced by the index in the group.
avg_user_impactavg_user_impact floatfloat Durchschnittlicher prozentualer Nutzen, der für Benutzerabfragen entstünde, wenn diese Gruppe fehlender Indizes implementiert würde.Average percentage benefit that user queries could experience if this missing index group was implemented. Der Wert bedeutet, dass die Abfragekosten durchschnittlich um diesen Prozentsatz verringert würden, wenn diese Gruppe fehlender Indizes implementiert würde.The value means that the query cost would on average drop by this percentage if this missing index group was implemented.
system_seekssystem_seeks bigintbigint 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.Number of seeks caused by system queries, such as auto stats queries, that the recommended index in the group could have been used for. Weitere Informationen finden Sie unter Auto Stats-Ereignisklasse.For more information, see Auto Stats Event Class.
system_scanssystem_scans bigintbigint Die Anzahl von durch Systemabfragen verursachten Scanvorgängen, für die der empfohlene Index in der Gruppe hätte verwendet werden können.Number of scans caused by system queries that the recommended index in the group could have been used for.
last_system_seeklast_system_seek datetimedatetime 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.Date and time of last system seek caused by system queries that the recommended index in the group could have been used for.
last_system_scanlast_system_scan datetimedatetime 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.Date and time of last system scan caused by system queries that the recommended index in the group could have been used for.
avg_total_system_costavg_total_system_cost floatfloat Die durchschnittlichen Kosten der Systemabfragen, die durch den Index in der Gruppe reduziert werden könnten.Average cost of the system queries that could be reduced by the index in the group.
avg_system_impactavg_system_impact floatfloat Durchschnittlicher prozentualer Nutzen, der für Systemabfragen entstünde, wenn diese Gruppe fehlender Indizes implementiert würde.Average percentage benefit that system queries could experience if this missing index group was implemented. Der Wert bedeutet, dass die Abfragekosten durchschnittlich um diesen Prozentsatz verringert würden, wenn diese Gruppe fehlender Indizes implementiert würde.The value means that the query cost would on average drop by this percentage if this missing index group was implemented.

HinweiseRemarks

Informationen, die vom Sys. dm_db_missing_index_group_stats wird nach jeder abfrageausführung und nicht nach jeder Abfragekompilierung oder Neukompilierung aktualisiert.Information returned by sys.dm_db_missing_index_group_stats is updated by every query execution, not by every query compilation or recompilation. Statistiken zur Verwendung sind nicht persistent und werden nur bis zum Neustart von SQL ServerSQL Server beibehalten.Usage statistics are not persisted and are kept only until SQL ServerSQL Server is restarted. Datenbankadministratoren sollten regelmäßig Sicherungskopien der Informationen zu fehlenden Indizes erstellen, wenn Sie die Verwendungsstatistiken nach dem Wiederverwenden des Servers beibehalten möchten.Database administrators should periodically make backup copies of the missing index information if they want to keep the usage statistics after server recycling.

Hinweis

Das Resultset für diese DMV wird auf 600 Zeilen beschränkt.The result set for this DMV is limited to 600 rows. Jede Zeile enthält einen fehlenden Index.Each row contains one missing index. Wenn Sie mehr als 600 fehlende Indizes verfügen, sollten Sie die vorhandenen fehlende Indizes behandeln, damit Sie Sie dann die neuere anzeigen können.If you have more than 600 missing indexes, you should address the existing missing indexes so you can then view the newer ones.

BerechtigungenPermissions

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.To query this dynamic management view, users must be granted the VIEW SERVER STATE permission or any permission that implies the VIEW SERVER STATE permission.

BeispieleExamples

Die folgenden Beispiele veranschaulichen, wie Sie mit der Sys. dm_db_missing_index_group_stats dynamische verwaltungssicht.The following examples illustrate how to use the sys.dm_db_missing_index_group_stats dynamic management view.

A.A. Suchen der 10 fehlenden Indizes mit der größten zu erwartenden Verbesserung für BenutzerabfragenFind the 10 missing indexes with the highest anticipated improvement for user queries

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.The following query determines which 10 missing indexes would produce the highest anticipated cumulative improvement, in descending order, for user queries.

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.B. Suchen der einzelnen fehlenden Indizes und ihrer Spaltendetails für eine bestimmte Gruppe fehlender IndizesFind the individual missing indexes and their column details for a particular missing index group

Mit der folgenden Abfrage werden die fehlenden Indizes bestimmt, aus denen eine bestimmte Gruppe fehlender Indizes besteht, und deren Spaltendetails angezeigt.The following query determines which missing indexes comprise a particular missing index group, and displays their column details. Für dieses Beispiel lautet das Handle der Gruppe fehlender Indizes 24.For the sake of this example, the missing index group handle is 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.This query provides the name of the database, schema, and table where an index is missing. Außerdem werden die Namen der Spalten zurückgegeben, die für den Indexschlüssel verwendet werden sollten.It also provides the names of the columns that should be used for the index key. Beim Schreiben der CREATE INDEX-DDL-Anweisung zum Implementieren fehlender Indizes Listen Spalten für Gleichheit zuerst und dann ungleichheitsspalten in der ON < Table_name>-Klausel der CREATE INDEX-Anweisung.When writing the CREATE INDEX DDL statement to implement missing indexes, list equality columns first and then inequality columns in the ON <table_name> clause of the CREATE INDEX statement. Eingeschlossene Spalten sollten in der INCLUDE-Klausel der CREATE INDEX-Anweisung aufgeführt werden.Included columns should be listed in the INCLUDE clause of the CREATE INDEX statement. 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.To determine an effective order for the equality columns, order them based on their selectivity, listing the most selective columns first (leftmost in the column list).

Siehe auchSee Also

sys.dm_db_missing_index_columns (Transact-SQL) sys.dm_db_missing_index_columns (Transact-SQL)
sys.dm_db_missing_index_details (Transact-SQL) sys.dm_db_missing_index_details (Transact-SQL)
sys.dm_db_missing_index_groups (Transact-SQL) sys.dm_db_missing_index_groups (Transact-SQL)
CREATE INDEX (Transact-SQL)CREATE INDEX (Transact-SQL)