Я работаю над системой хранилища данных, которая была обновлена около года назад до Oracle 10g (сейчас 10.2.0.5).
База данных настроена на workarea_size_policy=auto
и pga_aggregate_target=1G
.Большая часть процесса ETL написана на PL / SQL, и этот код обычно устанавливает workarea_size_policy=manual
и устанавливает SORT_AREA_SIZE
и HASH_AREA_SIZE
для определенных сеансов при построении определенных частей хранилища.
Значения, выбранные для SORT_AREA_SIZE
и HASH_AREA_SIZE
, различны для разных частей сборки.Эти размеры, вероятно, основаны на ожидаемом количестве данных, которые будут обрабатываться в каждой области.
Проблема, с которой я сталкиваюсь, заключается в том, что этот код начинает вызывать ряд ошибок ORA-600.Это заставляет меня задуматься, стоит ли вообще отменять автоматические настройки.
Код, который устанавливает ручные настройки, был написан много лет назад разработчиком, которого здесь больше нет.Вероятно, изначально он был написан для Oracle 8 с поправкой на Oracle 9, чтобы установить для workarea_size_policy значение manual.Никто на самом деле не знает, как были найдены значения, используемые для HASH_AREA_SIZE и SORT_AREA_SIZE.Они могут быть совершенно неприемлемыми для всего, что я знаю.
После этой длинной преамбулы у меня есть несколько вопросов.
- Как узнать, когда (если вообще) мне следует бытьпереопределение ручных настроек с помощью workarea_size_policy = manual?
- Как мне найти подходящие значения для HASH_AREA_SIZE, SORT_AREA_SIZE и т. д.1025 *
Я знаю, что это довольно широкий вопрос, но помощь была бы признательна.