Bonjour,
j'ai 'hérité' d'une requête de la forme suivante :
avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT PK-CH3, PK-CH2, champ1, champ2, PK-CH5, champ3 FROM MaTable table1 WHERE table1.PK-CH7 = 'ABC' and table1.PK-CH4 = 'A' and table1.PK-CH6 = 'ABC' and table1.PK-CH1 = (select max(PK-CH1) from MaTable where PK-CH3 = table1.PK-CH3 and PK-CH2 = table1.PK-CH2 and PK-CH7 = table1.PK-CH7 and PK-CH5 = table1.PK-CH5 and PK-CH6 = table1.PK-CH6 and PK-CH4 = table1.PK-CH4) and table1.PK-CH5 = to_date(to_char(table1.PK-CH5, 'MM/YYYY'), 'MM/YYYY') and table1.PK-CH5 between i_date_deb and i_date_fin;
- PK-CHx des éléments de la PK (qui est composée des champs PK-CH1 à 7) de la table [TABLE]
- PK-CH1 et PK-CH5 sont des dates, PK-CH2 un number et le reste du varchar2
- champx des données quelconques de la table [TABLE]
La volumétrie est très importante (une grosse dizaine de millions de lignes)...
Que conseilleriez-vous pour optimiser cette 'charmante' requête et diminuer grandement son temps d'exécution ?
Partager