Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/01/2008, 19:53
Avatar de Beakdan
Beakdan
 
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 23 años, 1 mes
Puntos: 7
Re: Duda al crear los índices correctos a fin de optimizar

En lo personal no creo que sea muy cierta esa teoría. No creo que haya reglas universales para la creación de índices.

En el caso de esta consulta... Segun los resultados de statistics io la tabla mayor es RollosEmbarque. Pero no tienes casi ninguna condición para delimitar los resultados de dicha tabla.
En la primera parte, la única condición que tienes para discriminarlos registros de RollosEmbarque es:

ro.IDPlanta NOT IN ('APRAMOS', 'APSLP', 'LAGERMEX-PUE', 'LAGERMEX-SAL')

Lo cual seguramente está generando un Index Scan debido al not in, y para lo cuál no sabría darte opciones.

El otro argumento que podría delimitar la cantidad de registros buscados en RollosEmbarque despues del join con RemisionesDetalle y Remisiones es:
YEAR(re.Fecha) IN (2007, 2008) Lo cual también generará un table o index scan, pero el volumen de esta tabla es muy reducido comparado con la anterior. Aún así, podría mejorar un poco el tiempo de respuesta (en caso de que exista un índice en este campo) cambiandolo por

re.Fecha >= '20070101' and re.Fecha < '20090101'

En la segunda parte, Salidas parece ser efectivamente el cuello de botella. Con certeza el plan de ejecución te muestra un index scan. Sin embargo, un indice de cobertura para esta consulta resultaría en un índice que usa todas las columnas disponibles en la tabla, algo que no es muy lógico, porque terminarias usando el doble de espacio de almacenamiento.
Sin embargo, sí parece lógico tener un índice en (IDPlanta, IDRollo). No incluyo "referencia", porque de todas maneras terminaría haciendo un scan ya que usa "not like".

No sabría sugerirte nada más, a menos que vea el plan de ejecución. Ya que estás optimizando, activa "set showplan_text on" y publica el plan de cada consulta en la unión. Nos dará una mejor perspectiva