sys.dm_db_missing_index_columns (Transact-SQL)
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Instancia administrada
Devuelve información sobre las columnas de la tabla de base de datos que faltan en un índice. sys.dm_db_missing_index_columns
es una función de administración dinámica.
Sintaxis
sys.dm_db_missing_index_columns(index_handle)
Argumentos
index_handle
Un entero que identifica de forma única un índice que falta. Puede obtenerse a partir de los siguientes objetos de administración dinámica:
sys.dm_db_missing_index_details (Transact-SQL)
sys.dm_db_missing_index_groups (Transact-SQL)
Tabla devuelta
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
column_id | int | Identificador de la columna. |
column_name | sysname | Nombre de la columna de la tabla. |
column_usage | varchar(20) | Forma en que la consulta utiliza la columna. Los valores posibles y sus descripciones son: IGUALDAD: La columna contribuye a un predicado que expresa la igualdad, con el formato : constant_value table.column = DESIGUALDAD: Column contribuye a un predicado que expresa la desigualdad, por ejemplo, un predicado del formulario: table.column>constant_value. Cualquier operador de comparación distinto de "=" expresa desigualdad. INCLUDE: La columna no se usa para evaluar un predicado, pero se usa por otro motivo, por ejemplo, para cubrir una consulta. |
Comentarios
La información devuelta por sys.dm_db_missing_index_columns
se actualiza cuando el optimizador de consultas optimiza una consulta y no se conserva. La información de índice que falta solo se mantiene hasta que se reinicia el motor de base de datos. 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. Use la columna sqlserver_start_time
en sys.dm_os_sys_info para encontrar la hora del último inicio del motor de base de datos.
Coherencia de las transacciones
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.
Permisos
Los usuarios deben disponer del permiso VIEW SERVER STATE o de cualquier permiso que implique el permiso VIEW SERVER STATE para consultar esta función de administración dinámica.
Permisos para SQL Server 2022 y versiones posteriores
Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.
Ejemplos
En el ejemplo siguiente se ejecuta una consulta en la tabla Address
y, después, otra con la vista de administración dinámica sys.dm_db_missing_index_columns
para devolver las columnas de la tabla a las que les falta un índice.
USE AdventureWorks2022;
GO
SELECT City, StateProvinceID, PostalCode
FROM Person.Address
WHERE StateProvinceID = 9;
GO
SELECT mig.*, statement AS table_name,
column_id, column_name, column_usage
FROM sys.dm_db_missing_index_details AS mid
CROSS APPLY sys.dm_db_missing_index_columns (mid.index_handle)
INNER JOIN sys.dm_db_missing_index_groups AS mig ON mig.index_handle = mid.index_handle
ORDER BY mig.index_group_handle, mig.index_handle, column_id;
GO
Las sugerencias de índice que faltan deben combinarse siempre que sea posible entre sí y con índices existentes en la base de datos actual. Aprenda a aplicar estas sugerencias en optimización de índices no clúster con sugerencias de índice que faltan.
Pasos siguientes
Obtenga más información sobre la característica de índice que falta en los siguientes artículos:
- Ajuste de índices no agrupados con sugerencias de índices que faltan
- sys.dm_db_missing_index_details (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_query (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)