Il dizionario dei dati o le statistiche sugli oggetti fissi potrebbero essere vecchi, prova a raccoglierli di nuovo:
exec dbms_stats.gather_dictionary_stats;
exec dbms_stats.gather_fixed_objects_stats;
alter system flush shared_pool;
Anche questo non raccoglie necessariamente statistiche per tutti oggetti di sistema. Alcuni oggetti, come X$KFTBUE
, deve essere raccolto manualmente. Anche se questo è un raro problema con il dizionario dei dati che potrebbe non essere rilevante qui.
Se ciò non funziona, alcuni passaggi successivi possibili sono l'esame di strumenti come SQL Tuning Advisor per creare un profilo o l'utilizzo di SQL Plan Management per forzare l'ottimizzatore a utilizzare un piano specifico che ha funzionato in precedenza. L'ottimizzazione di una query del dizionario dei dati può essere molto difficile poiché non hai molto controllo.