Agregar índices a menudo se sugiere aquí como un remedio para los problemas de rendimiento.Índices de base de datos: ¿Algo bueno, algo malo o una pérdida de tiempo?
(estoy hablando de leer & preguntando SOLAMENTE, todos sabemos que los índices pueden hacer que escribir sea más lento).
He intentado este remedio muchas veces, durante muchos años, tanto en DB2 como en MSSQL, y el resultado fue invariablemente decepcionante.
Mi descubrimiento ha sido que no importa cuán "obvio" fuera que un índice mejorara las cosas, resultó que el optimizador de consultas era más inteligente, y mi índice inteligentemente elegido casi siempre empeoraba las cosas.
Debo señalar que mis experiencias se refieren principalmente a las tablas pequeñas (< 100'000 filas).
¿Alguien puede proporcionar algunas pautas prácticas sobre las opciones de indexación?
La respuesta correcta sería una lista de recomendaciones algo como:
- Nunca/Siempre indexar una tabla con menos/más de registros NNNN
- Nunca/siempre en cuenta los índices de las teclas multi-campo
- Nunca/índices utilice siempre agrupados
- Nunca/siempre utilizar más de los índices de NNN en una sola tabla
- Nunca/siempre añadir un índice cuando [alguna condición mágica me muero por conocer]
Idealmente, la respuesta dará algunos ejemplos instructivos.
Todo depende de la velocidad de sus discos, y el tamaño de su memoria, y así sucesivamente. – Gabe
Antes que nada, ¡edita tu pregunta! ** Agregar índices ** solo puede hacer que una consulta sea más rápida, nunca más lenta. Lo que quiere decir es que debe especificar que el optimizador de consultas ** USE ** un índice, en efecto, anula lo que haría por sí mismo ... Eso puede hacer que una consulta sea más lenta –
@Charles Bretana: Agregar un índice CAN hacer una consulta más lenta si hace que el optometrista elija un plan incorrecto o si afecta negativamente el uso de otros índices. Además, agregar un índice generalmente ralentizará las inserciones/actualizaciones/eliminaciones. – sqlvogel