sys.dm_db_missing_index_columns (Transact-SQL)

Se aplica a: síSQL Server (todas las versiones admitidas) SíAzure SQL Database

Devuelve información sobre las columnas de la tabla de la base de datos que no tienen índice, sin incluir los índices espaciales. 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 ()de Transact-SQL

sys.dm_db_missing_index_groups ()de 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 igualdad, con el formato:
tabla. columna = constant_value

Desigualdad: la columna contribuye a un predicado que expresa desigualdad, por ejemplo, un predicado con el formato: TABLE. Column > constant_value. Cualquier operador de comparación distinto de "=" expresa desigualdad.

INCLUDE: la columna no se utiliza para evaluar un predicado, pero se usa por otro motivo, por ejemplo, para cubrir una consulta.

Observaciones

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. Utilice la sqlserver_start_time columna de Sys.dm_os_sys_info para buscar la última hora de 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.

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 AdventureWorks2012;  
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  

Consulte también

sys.dm_db_missing_index_details ()de Transact-SQL
sys.dm_db_missing_index_groups ()de Transact-SQL
sys.dm_db_missing_index_group_stats ()de Transact-SQL
sys.dm_db_missing_index_group_stats_query ()de Transact-SQL
sys.dm_os_sys_info ()de Transact-SQL