Память ИМХО является наиболее важной для Oracle
производительности.
Запуск нескольких баз данных подразумевает хранение нескольких наборов кэшированных SQL
и PL/SQL
, несколько кэшей данных для системных таблиц и т. Д.
Если вам просто нужно хранить данные отдельно, вы можете создать разные TABLESPACES
для разных пользователей. Вам все равно придется поделиться LOGFILES
.
Отключение дополнительных функций, таких как Data Mining
, вам мало чем поможет, так как они не потребляют память, когда они не используются.
Вам, безусловно, понадобится уменьшить любые значения памяти, но трудно сказать, что вы должны хранить, а какие - уменьшать, не видя дизайн базы данных.
Как очень неточное практическое правило, если у вас есть OLTP
база данных, то есть небольшие таблицы и высокий уровень параллелизма, вы, вероятно, должны пожертвовать sort_area_size
и hash_area_size
, но придерживайтесь db_block_buffers
как можно выше.
Если у вас большие таблицы, использующие HASH JOINS
и MERGE JOINS
, вам понадобятся sort_area_size
и hash_area_size
для эффективных объединений и упорядочения, но вы можете уменьшить db_block_buffers
, так как вы не сможете кэшируйте эти таблицы в любом случае.
Linux
и Windows
не сильно отличаются с точки зрения производительности Oracle
. Linux
, однако, грации LOCK_SGA
. Windows
тоже пытается это сделать, но может поменяться в сложных условиях памяти.