1 pièce(s) jointe(s)
Optimisation de requete oracle
Je lance une requete oracle sur 4 instances identiques (même schéma oracle), chaque instance est sur une base différente
le temps de réponse de la requête est à l'ordre de 5mn, par contre sur linstance N°: 1, la requete ne repond pas pourtant tout est similaire, voici la requête et son plan d'exécution sur cette instance°1 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| SELECT distinct psc.vente_id , pp.msisdn,sum(pp.amount),count(*)
FROM ppc_sim_cust psc, ppc_payments pp
WHERE pp.opsc_ask_state=5
AND pp.opsc_reply=0
AND psc.offre_id ='41'
AND psc.status = 'i'
AND psc.stamsi = 'A'
AND psc.vente_id = pp.vente_id
AND ((pp.opsc_reply_date is null
AND to_date('20061120','YYYYMMDD')<=pp.insert_date )
OR (pp.opsc_reply_date is not null
AND to_date('20061120','YYYYMMDD')<=pp.opsc_reply_date ))
AND ( (pp.payment_object = 'R' AND pp.payment_type='RIB' ) OR ( pp.payment_object = 'R' AND pp.payment_type='CB') OR ( pp.payment_object = 'R' AND pp.payment_type='SC') OR ( pp.payment_object = 'R' AND pp.payment_type='DAB'))
AND psc.vente_id NOT LIKE '%1'
group by psc.vente_id , pp.msisdn
having count(*) > 4; |
Pourriez vous me dire d'ou pourrait venir cette difference de temps d'execution entre les instances et comment la trouver, et comment opitmiser cette requete, malgré que (AND psc.vente_id NOT LIKE '%1') n'utilse pas l'index a cause du %.
Les deux tables ont un index sur le vente_id
Merci de votre reponse,
cdt,