|
|
|||||||||||||||||||||||||||||
|
Усовершенствование управления сервером: динамическая SGAИсточник: Oracle Magazine Вильям Саттон
В Oracle 9i появилась возможность изменять размер SGA. То есть менять размеры кеша буферов (Buffer Cache), разделяемого пула (Shared Pool) и большого пула (Large Pool), не останавливая программу. Кроме того, объем используемой оперативной памяти, может быть ограничен прямо в процессе работы, и определяется значением нового параметра SGA_MAX_SIZE. Теперь программы могут быть запущены с использованием минимального объема ресурсов, который в последствии по мере надобности может быть динамически увеличен администратором для обеспечения оптимальной производительности всех структур памяти. В модели динамической SGA введена новая единица выделения памяти, названная гранулой (granule). Гранула - это непрерывная область виртуальной памяти, размер которой (4 М или 16 Мбайт) зависит от значения параметра SGA_MAX_SIZE. При запуске экземпляра сервер Oracle аллокирует вхождения гранул, по одному вхождению для каждой гранулы, в количестве, необходимом для поддержания адресного пространства, определяемого значением SGA_MAX_SIZE. В процессе запуска, каждый компонент SGA получает столько гранул, сколько требуется. Как минимум - это три гранулы: одна для фиксированной SGA (fixed SGA, включая буфер журнала транзакций) и еще по одной для кеша буферов и разделяемого пула. Теперь администратор базы данных может увеличить объем памяти компонента SGA с помощью команды ALTER SYSTEM, изменяющей значение соответствующего параметра настройки экземпляра. Попытка увеличения объема памяти, используемой компонентом, на определенное число гранул, завершится успешно в том случае, если:
Несомненное преимущество этого подхода в том, что администратор больше не должен останавливать экземпляр для настройки производительности, таким образом, обеспечивается возможность непрерывной работы всех участников.
|
|