Bonjour,
Je dois effectuer un update sur une table , et cet update est un update avec jointure, mais les temps de traitements sont super longs et je me pose des question, notamment sur ce bout de requete qui participe à la mise à jour :
J'ai volontairement filtré sur une date ( le 1340 ) et un code ( le 95 ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT MAX (TO_NUMBER (fait_meteo.fm_heure)) fm_heure, dim_station_meteo.gm_code_gdf, dw.fait_meteo.dt_id FROM dw.fait_meteo, dw.dim_station_meteo WHERE ((dim_station_meteo.gm_id = fait_meteo.gm_id)) AND dim_station_meteo.gm_code_gdf = 95 AND fait_meteo.dt_id = 1340 GROUP BY dim_station_meteo.gm_code_gdf, dw.fait_meteo.dt_id
Quand je regarde l'explain plan j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop SELECT STATEMENT Optimizer Mode=CHOOSE 1 7 SORT GROUP BY NOSORT 1 90 7 NESTED LOOPS 5 450 7 TABLE ACCESS FULL DW.DIM_STATION_METEO 1 42 1 INDEX RANGE SCAN DW.FAIT_METEO_IN 146 6 K 6
On voit un TABLE ACCESS FULL, sachant que dans les indexes je n'ai que des PK sur fait_meteo.gm_id et dw.fait_meteo.fm_id ( pas de FK sur le gm_id, ni rien d'autre ) je me demande si il est normal d'avoir ce TABLE ACCESS FULL ?
Comment remédier à ce TABLE ACCESS FULL ?
Merci d'avance,
Partager