sys.dm_db_missing_index_details (Transact-SQL)sys.dm_db_missing_index_details (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database noAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Devuelve información detallada sobre los índices que faltan, excluidos los índices espaciales.Returns detailed information about missing indexes, excluding spatial indexes.

En Base de datos SQL de AzureAzure SQL Database, las vistas de administración dinámica no pueden exponer información que impactaría a la contención de la base de datos ni acerca de otras bases de datos a las que el usuario tenga acceso.In Base de datos SQL de AzureAzure SQL Database, dynamic management views cannot expose information that would impact database containment or expose information about other databases the user has access to. Para evitar exponer esta información, cada fila que contiene datos que no pertenecen al inquilino conectado se filtra.To avoid exposing this information, every row that contains data that doesn't belong to the connected tenant is filtered out.

Nombre de columnaColumn name Tipo de datosData type DescripciónDescription
index_handleindex_handle intint Identifica un índice que falta específico.Identifies a particular missing index. El identificador es único en todo el servidor.The identifier is unique across the server. index_handle es la clave de esta tabla.index_handle is the key of this table.
database_iddatabase_id smallintsmallint Identifica la base de datos en la que reside la tabla en la que falta un índice.Identifies the database where the table with the missing index resides.
object_idobject_id intint Identifica la tabla en la que falta el índice.Identifies the table where the index is missing.
equality_columnsequality_columns nvarchar(4000)nvarchar(4000) Lista de columnas separadas por comas que contribuyen a predicados de igualdad de la forma: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) Lista de columnas separadas por comas que contribuyen a predicados de desigualdad; por ejemplo, a predicados de la forma:Comma-separated list of columns that contribute to inequality predicates, for example, predicates of the form:

table.column > constant_valuetable.column > constant_value

Cualquier operador de comparación distinto de "=" expresa desigualdad.Any comparison operator other than "=" expresses inequality.
included_columnsincluded_columns nvarchar(4000)nvarchar(4000) Lista de columnas de cobertura separadas por comas requeridas por la consulta.Comma-separated list of columns needed as covering columns for the query. Para obtener más información acerca de cobertura o columnas incluidas, consulte crear índices con columnas incluidas.For more information about covering or included columns, see Create Indexes with Included Columns.

Para los índices optimizados para memoria (tanto hash optimizados para memoria no agrupado), pasar por alto included_columns.For memory-optimized indexes (both hash and memory-optimized nonclustered), ignore included_columns. Todas las columnas de la tabla se incluyen en cada índice optimizado para memoria.All columns of the table are included in every memory-optimized index.
instrucciónstatement nvarchar(4000)nvarchar(4000) Nombre de la tabla en la que falta el índice.Name of the table where the index is missing.

ComentariosRemarks

Información devuelta por sys.dm_db_missing_index_details se actualiza cuando una consulta está optimizada por el optimizador de consultas y no se conserva.Information returned by sys.dm_db_missing_index_details is updated when a query is optimized by the query optimizer, and is not persisted. La información sobre índices que faltan solo se conserva hasta que se reinicia SQL ServerSQL Server.Missing index information is kept only until SQL ServerSQL Server is restarted. Los administradores de bases de datos deben realizar copias de seguridad de forma periódica de la información de índices que faltan si desean conservarla después de reciclar el servidor.Database administrators should periodically make backup copies of the missing index information if they want to keep it after server recycling.

Para determinar qué índices que faltan los grupos que falta un índice determinado forma parte de, puede consultar el sys.dm_db_missing_index_groups vista de administración dinámica por pertenece con sys.dm_db_missing_index_details según la index_handle columna.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.

Nota

El conjunto de resultados de esta DMV se limita a 600 filas.The result set for this DMV is limited to 600 rows. Cada fila contiene un índice que falta.Each row contains one missing index. Si tiene más de 600 índices que faltan, tenga en cuenta los índices que faltan existentes para que pueda ver a continuación, los más recientes.If you have more than 600 missing indexes, you should address the existing missing indexes so you can then view the newer ones.

Utilizar información de índices que faltan en instrucciones CREATE INDEXUsing Missing Index Information in CREATE INDEX Statements

Para convertir la información devuelta por sys.dm_db_missing_index_details en una instrucción CREATE INDEX para índices con optimización para memoria tanto basadas en disco, deben colocar las columnas de igualdad antes de las columnas de desigualdad y juntos deben formar la clave del índice.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. Las columnas incluidas deben agregarse a la instrucción CREATE INDEX mediante la cláusula INCLUDE.Included columns should be added to the CREATE INDEX statement using the INCLUDE clause. Para determinar un orden efectivo para las columnas de igualdad, ordénelas en función de su selectividad, mostrando primero las columnas más selectivas (en la parte izquierda de la lista de columnas).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).

Para obtener más información acerca de los índices optimizados para memoria, vea índices para tablas optimizadas para memoria.For more information about memory-optimized indexes, see Indexes for Memory-Optimized Tables.

Coherencia de las transaccionesTransaction Consistency

Si una transacción crea o quita una tabla, las filas que contienen información de índices que faltan sobre los objetos quitados se eliminan de este objeto de administración dinámica para mantener la coherencia de la transacción.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.

PermisosPermissions

En SQL ServerSQL Server, requiere VIEW SERVER STATE permiso.On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
En SQL DatabaseSQL Database los niveles Premium, requieren el VIEW DATABASE STATE permiso en la base de datos.On SQL DatabaseSQL Database Premium Tiers, requires the VIEW DATABASE STATE permission in the database. En SQL DatabaseSQL Database niveles estándar y básico, requiere el administrador del servidor o un Administrador de Azure Active Directory cuenta.On SQL DatabaseSQL Database Standard and Basic Tiers, requires the Server admin or an Azure Active Directory admin account.

Vea tambiénSee 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)