Indice no es usado en select

Amables Srs, tengo un caso curioso en el que quisiera solicitarles su ayuda. Sucede que tengo una BD de producción con Oracle SE 10g y una replica de ésta para QA, y estoy revisando el "explain plan" de un select en particular en la BD de QA, y éste me muestra el uso de un índice, pero el mismo select en la BD de producción no utiliza el indice.

¿Por qué puede ser esto?, es sobre la misma tabla, con el mismo indice y el mismo select, si pienso en diferencias sólo podría mencionar que producción tiene 10.2.0.4.0 y QA 10.2.0.3.0, y que la tabla de QA tiene menos registros.

1 respuesta

Respuesta
1

No importa si tienes el mismo indice, misma tabla, etc.., lo que importa es el numero de filas, es decir, el optimizador te hace un plan de ejecución comprobando cual de todos los planes de ejecución es el menos pesado, si una tabla tiene pocas filas es probable que tarde menos en leerla entera que en leer su indice para saber que fila tiene que leer, por eso si ves esta diferencia lo que mas influye en la elección de indice o no es la cantidad de filas de la tabla.

Si necesitas cualquier otra cosa no dudes en comentármelo.

Saludos,

Realmente el número de registros de ambas tablas es muy similar, en términos generales estaban en las mismas condiciones, lo que estaba ocurriendo era simplemente que las estadísticas no estaban actualizadas, luego de generar estadísticas para esta tabla, en ambas BD se usaba el indice de igual forma, a partir de esta situación definí un plan de mantenimiento semanal para ayudar al desempeño de la BD.

Muchas gracias por tu información, es algo que voy a tener en cuenta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas