Salut à tous,
dans mon application j2ee je fais l'appel à cette requete :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 )
le plan d'execution est en PJ.

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 : Sélectionner tout - Visualiser dans une fenêtre à part
CREATE INDEX A_PT_CHRON_RES_U_FK ON PT_CHRON_RES_U
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.