Haga las estadísticas (que ayudan a decidir si se va a usar un índice) tenga en cuenta el número de filas por valor de la columna, o simplemente usa el promedio número de filas por valor.SQL Statistics and Indexes - ¿Qué tan detallados son?
Supongamos que tengo una tabla con una columna de bits llamada activa que tiene un millón de filas, pero con un 99.99% establecido en falso. Si tengo un índice en esta columna, entonces Sql es lo suficientemente inteligente como para saber usar el índice si busca activo = 1 pero que no tiene sentido si busca activo = 0.
Otro ejemplo, si tengo una tabla que tiene decir 1,000,000 de registros con una columna indexada que contiene aproximadamente 50,000 valores diferentes con un número promedio de filas por valor de 10, pero luego un valor especial que tiene 500,000 filas. El índice puede no ser útil si se busca este registro especial, pero sería muy útil cuando se busca cualquiera de los otros códigos.
Pero este caso especial arruina la efectividad del índice.
Gracias. Esto ayuda. Si uso donde Active = 0 e IndexedValue = '1' hará un escaneo de tabla mientras que Active = 1 e IndexValue = '1' usarán el índice. – sgmoore
No es una muy buena prueba. Deberías usar 'SELECT *' ya que por supuesto siempre usará el índice para 'COUNT (*)' –