SQL Creando un índice


Ejemplo

CREATE INDEX ix_cars_employee_id ON Cars (EmployeeId);

Esto creará un índice para la columna EmployeeId en la tabla Cars . Este índice mejorará la velocidad de las consultas que solicitan al servidor que ordene o seleccione los valores en EmployeeId , como los siguientes:

SELECT * FROM Cars WHERE EmployeeId = 1

El índice puede contener más de 1 columna, como en el siguiente;

CREATE INDEX ix_cars_e_c_o_ids ON Cars (EmployeeId, CarId, OwnerId);

En este caso, el índice sería útil para consultas que soliciten ordenar o seleccionar por todas las columnas incluidas, si el conjunto de condiciones se ordena de la misma manera. Eso significa que al recuperar los datos, puede encontrar las filas para recuperar usando el índice, en lugar de mirar a través de la tabla completa.

Por ejemplo, el siguiente caso utilizaría el segundo índice;

SELECT * FROM Cars WHERE EmployeeId = 1 Order by CarId DESC

Sin embargo, si el orden difiere, el índice no tiene las mismas ventajas, como en el siguiente;

SELECT * FROM Cars WHERE OwnerId = 17 Order by CarId DESC

El índice no es tan útil porque la base de datos debe recuperar el índice completo, en todos los valores de EmployeeId y CarID, para encontrar qué elementos tienen OwnerId = 17 .

(El índice puede seguir utilizándose; puede darse el caso de que el optimizador de consultas encuentre que recuperar el índice y filtrar en el OwnerId , luego recuperar solo las filas necesarias es más rápido que recuperar la tabla completa, especialmente si la tabla es grande).