Estoy ejecutando el mismo SQL (a continuación), en 2 entornos diferentes con el mismo conjunto de índice y el mismo tamaño de tabla. pero me dieron 2 diferentes planes de explicar (attached)mismo SQL pero diferente plan de explicación
- utiliza un Combinación de mezcla cartesiano - muy lento
- utiliza Coordinador PX/PX Enviar/PX RECIBIR - muy rápido
de consultas :
SELECT *
FROM SIEBEL.S_PARTY PRTY, SIEBEL.S_CONTACT CONT, HPQ_IF_ENTERPRISE_DIRECTORY ED,SIEBEL.S_BU BU
WHERE PRTY.ROW_ID = CONT.PAR_ROW_ID
AND BU.ROW_ID(+)=CONT.BU_ID
AND CONT.EMP_NUM IS NOT NULL
AND ED.HPSTATUS NOT IN ('Terminated', 'Retired', 'Deceased')
AND ED.EMPLOYEENUMBER = UPPER (LPAD (CONT.EMP_NUM, 8, '0'))
AND (SUBSTR(ED.MODIFYTIMESTAMP,1,14) >= '19800101' OR ED.MODIFYTIMESTAMP IS NULL)
¿Alguna idea de cuáles son las posibles causas para causar esta diferencia? ¿Y qué significa el segundo plan de explicación con (cosas PX)?
Tenga en cuenta que no estoy buscando cambiar la consulta SQL (congelar en producción).
Muchas gracias.
Gracias Gary, tienes razón. Encontré que el problema es causado por los "índices" que tienen un grado como DEFAULT. Supongo que tomaría el valor de grado del nivel de sesión DB que podría ser diferente. Después de forzar el grado en el nivel de índice a 4, pude resolverlo. Gracias. – iwan