Реферат: Управление информацией
Данные в SGA разделяются (т.е. совместно используются) всеми пользователями, присоединенными к базе данных. Для оптимальной производительности SGA должна быть максимально большой (пока позволяет реальная память), чтобы держать как можно больше данных в памяти и минимизировать дисковые операции. Информация, хранящаяся в SGA, подразделяется на несколько типов структур памяти, включая буфера базы данных, буфера журнала повторения и разделяемый пул. Эти области имеют фиксированные размеры и создаются при запуске инстанции.
Буферный кэш базы данных БУФЕРА БАЗЫ ДАННЫХ в SGA хранят наиболее недавно использовавшиеся блоки данных из базы данных; все множество буферов базы данных в инстанции составляет БУФЕРНЫЙ КЭШ БАЗЫ ДАННЫХ. Эти буфера могут содержать модифицированные данные, которые еще не записаны на диск для постоянного хранения
Поскольку последние использовавшиеся (в том числе и наиболее часто использующиеся) данные поддерживаются в памяти, требуется меньше дисковых операций, и производительность увеличивается.
Буфер журнала повторения БУФЕР ЖУРНАЛА ПОВТОРЕНИЯ в SGA хранит ЗАПИСИ ПОВТОРЕНИЯ - журнал изменений, осуществленных в базе данных. Записи повторения, хранящиеся в буферах журнала повторения, записываются в онлайновый файл журнала, который используется при необходимости восстановления базы данных. Его размер статичен.
Разделяемый пул Разделяемый пул - это часть SGA, содержащая конструкты разделяемой памяти, такие как разделяемые области SQL
Разделяемая область SQL требуется для обработки каждого уникального предложения SQL, выданного базе данных. Разделяемая область SGA содержит такую информацию, как дерево разбора и план исполнения для соответствующего предложения. Единственная разделяемая область SGA используется всеми приложениями, которые выдают то же самое предложение. Это позволяет оставлять больше разделяемой памяти для других целей.
Курсоры КУРСОР - это описатель (имя или указатель) области памяти, ассоциированной с конкретным предложением. Хотя большинство пользователей ORACLE полагаются на автоматическую обработку курсоров, обеспечиваемую утилитами ORACLE, программные интерфейсы предлагают разработчикам приложений большую степень контроля над курсорами. Например, при разработке приложений прекомпиляторов курсор является именованным ресурсом, доступным программе, и может специально использоваться для разбора предложений SQL, встроенных в приложение. Разработчик может написать приложение так, чтобы оно контролировало фазы исполнения предложения SQL и за счет этого повышало свою производительность.
Глобальная область программы (PGA)
ГЛОБАЛЬНАЯ ОБЛАСТЬ ПРОГРАММЫ (PGA) - это буфер памяти, содержащий данные и управляющую информацию для процесса сервера
PGA создается ORACLE при запуске процесса сервера. Информация в области PGA зависит от конфигурации ORACLE.
Процессы --------
ПРОЦЕСС - это "канал управления", механизм в операционной системе, который исполняет последовательность шагов. Некоторые операционные системы используют термины ЗАДАНИЕ или ЗАДАЧА
Процесс обычно имеет собственную область личной памяти, в которой он работает.
СУБД ORACLE имеет два общих типа процессов: пользовательские процессы и процессы ORACLE.
Пользовательские процессы (клиенты)
ПОЛЬЗОВАТЕЛЬСКИЙ ПРОЦЕСС создается и поддерживается для исполнения программного кода прикладной программы (такой как программа Pro*C) или инструмента ORACLE (такого как SQL*DBA)
Пользовательский процесс также управляет взаимодействием с процессами сервера. Это взаимодействие осуществляется через программный интерфейс, описываемый ниже в этом разделе.
Процессы ORACLE
ПРОЦЕССЫ ORACLE вызываются другими процессами для того, чтобы выполнять функции от имени вызывающего процесса. Ниже обсуждаются различные типы процессов ORACLE и их специфические функции.
Процессы сервера ORACLE создает ПРОЦЕССЫ СЕРВЕРА, чтобы обрабатывать запросы от присоединенных пользовательских процессов. Процесс сервера отвечает за связь с пользовательским процессом и за взаимодействие с ORACLE для выполнения запросов ассоциированного пользовательского процесса. Например, если пользователь запрашивает данные, которых еще нет в буферах базы данных в SGA, то ассоциированный процесс сервера считывает соответствующие блоки данных из файлов данных в SGA.
ORACLE можно конфигурировать на различное число пользовательских процессов на один процесс сервера. В КОНФИГУРАЦИИ ВЫДЕЛЕННОГО СЕРВЕРА каждый процесс сервера обрабатывет запросы для одного пользовательского процесса. КОНФИГУРАЦИЯ МНОГОКАНАЛЬНОГО СЕРВЕРА позволяет многим пользовательским процессам совместно использовать небольшое число процессов сервера, минимизируя количество процессов сервера и максимизируя утилизацию доступных системных ресурсов.
В некоторых системах пользовательский и серверный процессы разделены, тогда как в других системах они объединены в единый процесс. Если система конфигурирована на многоканальный сервер, или если пользовательские и серверные процессы работают на разных машинах, то пользовательский процесс и процесс сервера должны быть раздельными.
Фоновые процессы
ORACLE создает множество ФОНОВЫХ ПРОЦЕССОВ для каждой инстанции
В фоновых процессах сосредоточены те функции, которые иначе пришлось бы выполнять множеством программ ORACLE, запускаемых для каждого пользовательского процесса. Фоновые процессы асинхронно выполняют операции ввода-вывода и отслеживают другие процессы ORACLE, обеспечивая лучший параллелизм и улучшая производительность и надежность.
Область SGA и фоновые процессы ORACLE в совокупности составляют инстанцию ORACLE.
Каждая инстанция ORACLE может использовать несколько фоновых процессов. Эти процессы имеют следующие имена: DBWR, LGWR, CKPT, SMON, PMON, ARCH, RECO, Dnnn и LCKn. Каждый из этих фоновых процессов описан ниже.
Писатель базы данных (DBWR)
ПИСАТЕЛЬ БАЗЫ ДАННЫХ записывает модифицированные блоки из буферного кэша базы данных в файлы данных. Благодаря способу, которым ORACLE осуществляет журнализацию, процессу DBWR не требуется записывать эти блоки при завершении транзакции