Tipos de consultas e índices
Cuando se plantee la posibilidad de crear un índice en una columna, tenga en cuenta de qué modo se utilizará la columna en las consultas. En la siguiente tabla se describen los tipos de consulta para los que resultan útiles los índices.
Nota
Los ejemplos de la tabla se basan en la base de datos de ejemplo AdventureWorks2008R2. Al ejecutar los ejemplos de SQL Server Management Studio, para ver los índices seleccionados por el optimizador de consultas, muestre el plan de ejecución real. Para obtener más información, vea Cómo mostrar un plan de ejecución real.
Consulta en la que el predicado de la columna es uno de los siguientes |
Descripción de la consulta y ejemplo |
Índice que se tendrá en cuenta |
---|---|---|
Coincidencia exacta con un valor específico |
Busca una coincidencia exacta en la que la consulta utiliza la cláusula WHERE para especificar una entrada de columna con un valor específico. Por ejemplo:
|
Un índice clúster o no clúster de la columna BusinessEntityID. |
Una coincidencia exacta con un valor de una lista IN (x,y,z) |
Busca una coincidencia exacta con un valor de una lista de valores especificada. Por ejemplo:
|
Un índice clúster o no clúster de la columna BusinessEntityID. |
Intervalo de valores |
Busca un intervalo de valores en el que la consulta especifica cualquier entrada que tenga un valor que se encuentre entre dos valores. Por ejemplo:
O bien
|
Un índice clúster o no clúster de la columna ProductModelID. |
Combinación de tablas |
Busca filas de una tabla que coincidan con una fila de otra tabla a partir de un predicado de combinación. Por ejemplo:
|
Un índice clúster o no clúster de las columnas ProductID y ProductAssemblyID. |
Comparación LIKE |
Busca filas coincidentes que empiecen por una cadena de caracteres específica, como 'abc%'. Por ejemplo:
|
Un índice clúster o no clúster de la columna Name. |
Ordenada o agregada |
Requiere un criterio de ordenación implícito o explícito o una agregación (GROUP BY). Por ejemplo:
|
Índice clúster o no clúster de la columna ordenada o agregada. En el caso de las columnas ordenadas, considere la posibilidad de especificar el orden ASC o DESC de la columna. |
Restricción PRIMARY KEY o UNIQUE |
Busca duplicados de nuevos valores de clave de índice en operaciones de inserción y actualización para forzar las restricciones PRIMARY KEY y UNIQUE. Por ejemplo:
|
Índice clúster o no clúster de las columnas definidas en la restricción. |
Operación UPDATE o DELETE en una relación PRIMARY KEY/FOREIGN KEY |
Busca filas en una operación de actualización o eliminación en las que la columna interviene en una relación PRIMARY KEY/FOREIGN KEY, con o sin la opción CASCADE. |
Un índice clúster o no clúster de la columna de clave externa. |
La columna se encuentra en la lista de selección, pero no en el predicado. |
Incluye una o varias columnas de la lista de selección que no se utilizan para realizar búsquedas. Por ejemplo:
|
Índice no clúster con FileName especificado en la cláusula INCLUDE. |