tengo una consulta como esta:índices deben ser creados para optimizar la consulta SQL con múltiples o condiciones
SELECT *
FROM T
WHERE A = @A AND ([email protected] OR [email protected] OR [email protected] OR @E=E)
ORDER BY F
Qué índices debo añadir para mejorar el rendimiento de las consultas? También tendré que implementar la paginación para que esta consulta sea más compleja.
Supongo que se deben crear cuatro índices: (A, B, F), (A, C, F), (A, D, F) (A, E, F), pero no soy seguro y realmente no puedo probarlo ya que aún no tengo suficientes datos.
¿Alguien tiene algo de experiencia para compartir? Gracias.
En Oracle tiene Bitmap Index, con el cual tiene que crear solo 5 índices separados (en A, en B, ...) para cubrir todas sus combinaciones. Funciona mejor para columnas de baja cardinalidad (es decir, que tienen un número bastante limitado de valores posibles, como el género y los colores). Intenta buscar en Google algo como 'ms sql alternative to oracle bitmap index'. Espero que ayude –
Lo intentaré. Gracias – Marko
Además, ten cuidado; un índice puede disminuir el tiempo necesario para disparar consultas SELECT, pero puede aumentar drásticamente el tiempo que tarda una inserción. Esto es algo con lo que hemos tenido que lidiar en nuestra base de datos de producción. – Rob