sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server 2005 almacenó en caché un plan de ejecución que nunca podría funcionar

Puede que le interese el Primera regla de programación .

Un índice agrupado siempre incluye todas las filas. Puede ser ordenado por z , pero aún contendrá todas las demás columnas en el nivel de hoja.

La razón por la que SQL Server a veces prefiere un análisis agrupado en lugar de una búsqueda de índice es la siguiente. Cuando realiza una búsqueda de índice, debe seguirla con una búsqueda de marcador en el índice agrupado para recuperar las columnas que no están en el índice.

Cuando realiza un escaneo de índice agrupado, por definición encuentra todas las columnas. Eso significa que no se requiere una búsqueda de marcadores.

Cuando SQL Server espera muchas filas, intenta evitar las búsquedas de marcadores. Esta es una opción probada por el tiempo. Las búsquedas de índices no agrupados son superadas de forma rutinaria por los escaneos de índices agrupados.

Puede probar esto para su caso forzando con with (index(IX_YourIndex)) sugerencia de consulta .