Salut à tous,
dans mon application j2ee je fais l'appel à cette requete :
le plan d'execution est en PJ.Code:
1
2
3
4
5
6
7 select sum(valeur) from pt_chron_res_u pt, chron_res_u ch where pt.id_chron_res_u = ch.id_chron_res_u and ch.id_etude=15032 and ch.type in ('RPRIM','RSEC','PRODUCTION') and pt.date_res_u >= ( select date_debut from marge_periode where marge_periode.id_calcul=101 and marge_periode.id_etude=15032 and marge_periode.numero_periode=1 ) and pt.date_res_u < ( select date_fin from marge_periode where marge_periode.id_calcul=101 and marge_periode.id_etude=15032 and marge_periode.numero_periode=1 )
la structure des tables est la suivante :
|----------------|
| CHRON_RES_U |
|----------------|
| id_chron_res_u |
| type |
| id_etude |
|----------------|
|-------------------|
| PT_CHRON_RES_U |
|-------------------|
| id_chron_res_u |
| date_res_u |
| valeur |
|-------------------|
|----------------|
| MARGE_PERIODE |
|----------------|
| id_calcul |
| numero_periode |
| id_etude |
| date_debut |
| date_fin |
|----------------|
Voici les index présent sur la table PT_CHRON_RES_U :
Code:CREATE INDEX A_PT_CHRON_RES_U_FK ON PT_CHRON_RES_U
Code:CREATE UNIQUE INDEX PK_PT_CHRON_RES_U ON PT_CHRON_RES_U
Le problème là, c'est que la dite requete prend entre 30s et 45s pour s'executer et que je dois le faire 15 fois (pour un numéro de période allant de 1 à 15), du coup je cherche à l'optimiser au max mais là, mais à part ajouter un index sur la table PT_CHRON_RES_U, sur l'id, jvois pas, car c'est cette table qui apparement pose soucis.