Articles

sys.dm_db_missing_index_details (Transact-SQL)

Posted by admin
  • 03/20/2017
  • 2 minutes to read
    • W
    • r
    • c
    • M
    • s
    • +5

Applies to: SQL Server (all supported versions) Azure SQL Database

Returns detailed information about missing indexes, excluding spatial indexes.

En la base de datos SQL de Azure, las vistas de administración dinámica no pueden exponer información que pueda afectar a la contención de la base de datos o exponer información sobre otras bases de datos a las que el usuario tenga acceso. Para evitar exponer esta información, se filtra cada fila que contiene datos que no pertenecen al inquilino conectado.

nombre de la Columna tipo de Datos Descripción
index_handle int Identifica a un determinado índice que faltan. El identificador es único en todo el servidor. index_handle es la clave de esta tabla.
database_id smallint Identifica la base de datos donde reside la tabla con el índice faltante.
object_id int Identifica la mesa donde el índice de falta.
equality_columns nvarchar(4000) Lista de columnas separadas por comas que contribuyen a los predicados de igualdad de la forma:
tabla.columna = valor constante
inequality_columns nvarchar(4000) Lista de columnas separadas por comas que contribuyen a los predicados de desigualdad, por ejemplo, predicados de la tabla form:
.columna > valor_ constante
Cualquier operador de comparación que no sea «=» expresa desigualdad.
included_columns nvarchar (4000) Lista de columnas separadas por comas necesarias como columnas de cobertura para la consulta. Para obtener más información sobre las columnas cubiertas o incluidas, consulte Crear índices con columnas incluidas.
Para índices optimizados en memoria (tanto hash como no agrupados optimizados en memoria), ignore included_columns. Todas las columnas de la tabla se incluyen en cada índice optimizado para memoria.
instrucción nvarchar (4000) Nombre de la tabla donde falta el índice.

Comentarios

Información devuelta por sys.dm_db_missing_index_details se actualiza cuando una consulta es optimizado por el optimizador de consultas, y no se conserva. La información de índice que falta se conserva solo hasta que se reinicia SQL Server. Los administradores de bases de datos deben hacer copias de seguridad periódicas de la información de índice que falta si desean conservarla después del reciclaje del servidor.

Para determinar de qué grupos de índices faltantes forma parte un índice faltante en particular, puede consultar la vista de administración dinámica sys.dm_db_missing_index_groups asociándola con sys. dm_db_missing_index_details en función de la columna index_handle.

Nota

El conjunto de resultados para este DMV está limitado a 600 filas. Cada fila contiene un índice que falta. Si tiene más de 600 índices faltantes, debe abordar los índices faltantes existentes para poder ver los más nuevos.

Usando la Información de índice faltante en las instrucciones CREATE INDEX

Para convertir la información devuelta por sys. dm_db_missing_index_details en una instrucción CREATE INDEX para índices optimizados para memoria y basados en disco, las columnas de igualdad deben colocarse antes de las columnas de desigualdad, y juntas deben formar la clave del índice. Las columnas incluidas se deben agregar a la instrucción CREATE INDEX utilizando la cláusula INCLUDE. Para determinar un orden efectivo para las columnas de igualdad, ordénelas en función de su selectividad: enumere primero las columnas más selectivas (más a la izquierda de la lista de columnas).

Para obtener más información acerca de los índices optimizados para memoria, consulte Índices para Tablas optimizadas para memoria.

Consistencia de transacción

Si una transacción crea o elimina una tabla, las filas que contienen información de índice faltante sobre los objetos eliminados se eliminan de este objeto de administración dinámica, preservando la consistencia de la transacción.

Permisos

En SQL Server, requiere permiso VIEW SERVER STATE.
En los objetivos de servicio SQL Database Basic, S0 y S1, y en las bases de datos de grupos elásticos, se requiere una cuenta Server admin o Azure Active Directory admin. En todos los demás objetivos de SQL Database service, se requiere el permiso VIEW DATABASE STATE en la base de datos.

Véase También

Related Post

Leave A Comment