sys.dm_db_missing_index_details (Transact-SQL)sys.dm_db_missing_index_details (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 detaillierte Informationen zu fehlenden Indizes, außer räumlichen Indizes, zurück.Returns detailed information about 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, dass diese Informationen verfügbar gemacht werden, wird jede Zeile, die Daten enthält, die nicht zum verbundenen Mandanten gehören, 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
index_handleindex_handle intint Identifiziert einen bestimmten fehlenden Index.Identifies a particular missing index. Der Bezeichner ist innerhalb des Servers eindeutig.The identifier is unique across the server. index_handle ist der Schlüssel dieser Tabelle.index_handle is the key of this table.
database_iddatabase_id smallintsmallint Identifiziert die Datenbank, in der sich die Tabelle mit dem fehlenden Index befindet.Identifies the database where the table with the missing index resides.
object_idobject_id intint Identifiziert die Tabelle, in der der Index fehlt.Identifies the table where the index is missing.
equality_columnsequality_columns nvarchar(4000)nvarchar(4000) Durch Trennzeichen getrennte Liste von Spalten, die zu Gleichheitsprädikaten der folgenden Form beitragen:Comma-separated list of columns that contribute to equality predicates of the form:

Table. Column =-constant_valuetable.column =constant_value
inequality_columnsinequality_columns nvarchar(4000)nvarchar(4000) Durch Trennzeichen getrennte Liste von Spalten, die zu Ungleichheitsprädikaten beispielsweise der folgenden Form beitragen:Comma-separated list of columns that contribute to inequality predicates, for example, predicates of the form:

Table. Column > -constant_valuetable.column > constant_value

Jeder Vergleichsoperator außer "=" drückt Ungleichheit aus.Any comparison operator other than "=" expresses inequality.
included_columnsincluded_columns nvarchar(4000)nvarchar(4000) Durch Trennzeichen getrennte Liste von Spalten, die zur Abdeckung der Abfrage benötigt werden.Comma-separated list of columns needed as covering columns for the query. Weitere Informationen zum abdecken oder einschließen von Spalten finden Sie unter Erstellen von Indizes mit eingebundenen Spalten.For more information about covering or included columns, see Create Indexes with Included Columns.

Ignorieren Sie für Speicher optimierte Indizes (sowohl Hash als auch Speicher optimiertes Nonclustered) included_columns.For memory-optimized indexes (both hash and memory-optimized nonclustered), ignore included_columns. Alle Spalten der Tabelle werden in jeden speicheroptimierten Index eingeschlossen.All columns of the table are included in every memory-optimized index.
anstatement nvarchar(4000)nvarchar(4000) Der Name der Tabelle, in der der Index fehlt.Name of the table where the index is missing.

BemerkungenRemarks

Die von sys.dm_db_missing_index_details zurückgegebenen Informationen werden aktualisiert, wenn eine Abfrage vom Abfrageoptimierer optimiert wird, und sind nicht persistent.Information returned by sys.dm_db_missing_index_details is updated when a query is optimized by the query optimizer, and is not persisted. Informationen zu fehlenden Indizes werden nur bis zum Neustart von SQL ServerSQL Server aufbewahrt.Missing index information is kept only until SQL ServerSQL Server is restarted. Datenbankadministratoren sollten regelmäßig Sicherungskopien der Informationen zu fehlenden Indizes erstellen, wenn Sie sie 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 it after server recycling.

Zum Bestimmen der Gruppen fehlender Indizes, denen ein bestimmter fehlender Index angehört, können Sie die dynamische Verwaltungssicht sys.dm_db_missing_index_groups abfragen, indem Sie sie in einem auf der index_handle-Spalte basierenden Gleichheitsjoin mit sys.dm_db_missing_index_details verknüpfen.To determine which missing index groups a particular missing index is part of, you can query the sys.dm_db_missing_index_groups dynamic management view by equijoining it with sys.dm_db_missing_index_details based on the index_handle column.

Hinweis

Das Resultset für diese DMV ist 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 über mehr als 600 fehlende Indizes verfügen, sollten Sie die vorhandenen fehlenden Indizes ansprechen, damit Sie die neueren Indizes 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.

Verwenden von Informationen zu fehlenden Indizes in CREATE INDEX-AnweisungenUsing Missing Index Information in CREATE INDEX Statements

Um die von sys. dm_db_missing_index_details zurückgegebenen Informationen in eine CREATE INDEX-Anweisung für Speicher optimierte und Datenträger basierte Indizes zu konvertieren, sollten Gleichheits Spalten vor die Ungleichheits Spalten eingefügt werden, und Sie sollten die Schlüssel des Indexes bilden.To convert the information returned by sys.dm_db_missing_index_details into a CREATE INDEX statement for both memory-optimized and disk-based indexes, equality columns should be put before the inequality columns, and together they should make the key of the index. Eingeschlossene Spalten sollten der CREATE INDEX-Anweisung mithilfe der INCLUDE-Klausel hinzugefügt werden.Included columns should be added to the CREATE INDEX statement using the INCLUDE clause. Für eine effektive Reihenfolge der Gleichheitsspalten sortieren Sie sie nach ihrer Selektivität, wobei Sie die ausgewählten Spalten zuerst (am weitesten links in der Spaltenliste) aufführen.To determine an effective order for the equality columns, order them based on their selectivity: list the most selective columns first (leftmost in the column list).

Weitere Informationen zu Speicher optimierten Indizes finden Sie unter Indizes für Speicher optimierte Tabellen.For more information about memory-optimized indexes, see Indexes for Memory-Optimized Tables.

TransaktionskonsistenzTransaction Consistency

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.If a transaction creates or drops a table, the rows containing missing index information about the dropped objects are removed from this dynamic management object, preserving transaction consistency.

BerechtigungenPermissions

In SQL ServerSQL Serverist die VIEW SERVER STATE -Berechtigung erforderlich.On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
Bei SQL-DatenbankSQL Database Premium-Tarifen ist die VIEW DATABASE STATE -Berechtigung in der Datenbank erforderlich.On SQL-DatenbankSQL Database Premium Tiers, requires the VIEW DATABASE STATE permission in the database. In SQL-DatenbankSQL Database den Tarifen "Standard" und "Basic" ist der Server Administrator oder ein Azure Active Directory Administrator Konto erforderlich.On SQL-DatenbankSQL Database Standard and Basic Tiers, requires the Server admin or an Azure Active Directory admin account.

Weitere InformationenSee Also

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