На эту тему есть топик
Автор:
Дата: 16.02.05
Вопрос примерно тот же:
есть запрос из временной таблицы и еще чего-то
select *
from temp_t, small_t, other_small_t
where
temp_t.code1 = small_t.code and temp_t.code2 = other_small_t.code
small_t и other_small_t содержать по сотне записей.
temp_t заполняется кучей записей. От 10 тысяч до нескольких сот тысяч записей.
При этом алгоритм обрабатывает данные итеративно : т.е. для разных сущностей (до 500 сущностей в пределах одной обработки данных) он вызывает заполнение временной таблицы и этот селект
Использовать DBMS_STATS не рационально — он на таких объемах да еще будучи вызван много раз съест слишком много времени.
Вопрос: а как поступить?
— хинт — /*+ DYNAMIC_SAMPLING */ — не будет ли он за каждым разом пересобирать статистику?
— можно конечно затюнить запрос хинтами, тогда план всегда будет правильным
— или есть еще более правильный способ с точки зрения оракла для временных таблиц?