Problème de TABLE ACCESS FULL
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 :
Code:
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 |
J'ai volontairement filtré sur une date ( le 1340 ) et un code ( le 95 ).
Quand je regarde l'explain plan j'ai :
Code:
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,