No basta sólo mirar que el visual explain no te proponga índices. Deberias
mirar en el resumen de la derecha qué indice está utilizando. A veces
simplemente no escoge el más adecuado. Tammbién ten en cuenta que ante
ciertas circunstancias, el optimizador de DB2 no utiliza indices. Por
ejemplo:
-Columnas de la clave que sean "nullables" es decir admitan
valores nulos
-Usar expresiones derivadas en SELECT ya que el indice podría
no ser utilizado para predicados con valores derivados. Ejemplo:
WHERE SHIPDATE > (current_date - 10) or UPPER(customer_name) =‘SMITH’ <-
SMITH es un valor derivado de usar la función UPPER
-El acceso por índice no se usa para predicados donde ambos
operandos son de la misma tabla.
Ejemplo: WHERE SHIPDATE > ORDERDATE <-provoca doble acceso a la misma row
Hay otros casos, pero pudes comprobar estos.
Saludos
Luis López
__________________________________________________
Forum.HELP400 es un servicio m&#225;s de NEWS/400.
&#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400