Bonjour
J'essaye de faire une requete pas tres compliquée, mais sur 2M de lignes, ce qui fait qu'elle prend beaucoup de temps.
J'ai donc comme requête :
J'ai ajouté un index sur ma table table_stockage sur les colonnes code_entrep et code_produit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT t.code_entrep, p.code_qual, p.n_num_quantite, t.date_mep FROM table_stockage t JOIN quantite p ON (t.code_commun = p.code_commun) WHERE t.date_mep = (SELECT MAX (date_mep) FROM table_stockage t2 WHERE t2.code_entrep = t.code_entrep AND t2.code_produit = t.code_produit) ORDER BY code_entrep;
Et comme plan d'execution j'obtiens
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ------------------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost | ------------------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | 20110 | 1060K| 2084 | | 1 | SORT ORDER BY | | 20110 | 1060K| 2084 | | 2 | FILTER | | | | | | 3 | HASH JOIN | | 20110 | 1060K| 1867 | | 4 | TABLE ACCESS FULL | QUANTITE | 629 | 10693 | 2 | | 5 | TABLE ACCESS FULL | TABLE_STOCKAGE | 19662 | 710K| 1863 | | 6 | SORT AGGREGATE | | 1 | 18 | | | 7 | TABLE ACCESS BY INDEX ROWID| TABLE_STOCKAGE | 1 | 18 | 2 | | 8 | INDEX RANGE SCAN | TABLE_STOCKAGE_IND | 1 | | 1 | ------------------------------------------------------------------------------------------
Merci pour votre aide
Partager