Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / Le / Структуры программных средств Oracle.doc
Скачиваний:
51
Добавлен:
16.04.2013
Размер:
128.51 Кб
Скачать

Области памяти Oracle8

Oracle- это система управления базами данных, которая обычно работает с большими объемами информации. Для оптимального функционированияOracleсоздает и применяет множество различных областей кэширования памяти, которые помогают уменьшить число операций дискового ввода/вывода и повысить производительность сервера. В число этих областей входят буферный кэш, разделяемый пул и программные глобальные области. В последующих разделах будет рассмотрена каждая из областей памяти экземпляраOracle.

Буферный кэш

Буферный кэш (buffer cache)экземпляраOracleявляется, как правило, самой большой областью памяти сервера. В буферном кэше хранится последняя информация базы данных, запрошенная транзакциями приложений. На рис. 8 представлен буферный кэш экземпляра.

При обновлении строки таблицы процесс сервера переднего плана считывает блок данных, содержащий нужную строку, из файла данных, расположенного на диске, в буферный кэш. Затем серверный процесс может модифицировать блок данных в памяти сервера. Если запросу транзакции другого пользователя требуется обновить эту же строку или другую строку, содержащуюся в том же блоке, то, поскольку нужный блок уже находится в буферном кэше, можно избежать обращения к диску. В конце операции процесс DBWRзаписывает черновые, или "грязные"(dirty),т.е. измененные, данные назад в файлы данных. Более детальная информация о работе процесс DBWR приведена выше в разделе "Процесс записи в базу данных (DBWR)".

Размер буферного кэша

Одним из самых простых способов оптимизировать работу сервера Oracleявляется правильное задание размера для буферного кэша экземпляра. Необходимо сделать буферный кэш достаточно большим для хранения информации базы данных, наиболее часто используемой приложениями, но не слишком большим, чтобы он не занял всю память компьютера. Перед запуском сервера нужно установить параметр, определяющий размер буферного кэша экземпляра, и только потом запустить сервер. После того как сервер проработает определенное время, следует проанализировать отношение числа кэш-попаданий к числу кэш-промахов и кэш-перезагрузок и определить, насколько буферный кэш системы помогает снизить число операций ввода/вывода блоков данных. Чтобы переустановить размер буферного кэша, нужно остановить сервер, изменить значение соответствующего параметра, а затем вновь запустить сервер (динамически, во время работы сервера, изменить размер буферного кэша нельзя).

Разделяемый пул

Область памяти экземпляра, называемая разделяемым пулом (shared pool),также является основной областью памяти сервера. Разделяемый пул экземпляра состоит из двух компонентов: библиотечного и словарного кэшей. О разделяемом пуле экземпляра, представленном на рис. 9, идет речь в последующих разделах.

Библиотечный кэш и разделяемые sql-операторы

В библиотечном кэше (library cache)сохраняется и совместно используется большинство недавно выполненных SQL-операторов и программPL/SQL, предварительно прошедших синтаксический анализ. Например, когда выдается SQL-оператор,Oracleосуществляет его синтаксический анализ и определяет наиболее эффективный план выполнения этого оператора. После этогоOracleкэширует его в разделяемом пуле. Если другой пользователь выдает такой же оператор,Oracleможет воспользоваться оператором, находящимся в памяти, а не выполнять для нового оператора аналогичные действия. Благодаря кэшированию SQL-операторов снижается расход ресурсов, необходимых для выполнения групп операторов приложений.

Соседние файлы в папке Le