Соберите статистику оптимизатора по соответствующим таблицам и выясните, почему статистика отсутствовала.
begin
dbms_stats.gather_table_stats(user, 'CONFIRM');
dbms_stats.gather_table_stats(user, 'INVOICE_CONFIRM');
dbms_stats.gather_table_stats(user, 'PERSON');
end;
/
Статистика оптимизатора имеет решающее значение для достижения высокой производительности Oracle. Примечание dynamic statistics used: dynamic sampling (level=2)
подразумевает, что есть таблицы с отсутствующей статистикой оптимизатора. Этого никогда не должно произойти, если таблицы не были созданы в течение последнего дня.
Oracle автоматически собирает устаревшую и отсутствующую статистику. Проверьте, выполняется ли задание с этим запросом. Если последние строки отсутствуют, попросите своего администратора базы данных снова включить задачу.
select *
from dba_optstat_operations
where operation like '%auto%'
order by start_time desc;
Автозадача достаточно хороша для большинства таблиц. Но если есть большой пакетный процесс, который обновляет много строк, тогда статистику следует собирать вручную, как только задание будет завершено.