Буферный кэш базы данных содержит копии блоков Oracle из файлов данных. Эти блоки могут быть одного из следующих типов: данные, индексы, временные данные, сегменты отката или загрузочные/котированные сегменты. На самом деле буферный кэш базы данных часто содержит несколько версий
наиболее активно используемых блоков из файлов данных. Эти версии блоков
данных создаются для различных транзакций, требующих согласованных по
чтению изображений данных.
Oracle реализует
многоверсиоппую совместимость по чтению,
применяяизображения до
внесения изменений (далее "изображения до") из сегментов отката(когда допустимо) для обеспечения согласованного чтения между транзакциями. Базовая концепция гласит, что выбранные и посылаемые пользователю строки - это обязательно зафиксированные (committed) данные. Исключением из правила можно считать случай, если пользователь сам является инициатором транзакции, и желает сделать запрос о произведенных изменениях еще до момента принятия решения о том, будут ли данные зафиксированы или откачены. По умолчанию в Oracle никогда нельзя сделать то, что называется
грязным
(прочесть данные, в которые кто-то другой внес изменения, но они ещене зафиксированы). Эта концепция обсуждается самым подробным образом в главе "Настройка подключения".
Размер буферного кэша базы данных определяется параметром инициализации DB_BLOCK_BUFFERS. Количество памяти, используемое этой структурой памяти, является функцией от DB_BLOCK_SIZE, умноженного на DB_BLOCK_ BUFFERS. Если в кэше 10 тысяч блоков по 8 Кбайт каждый, размер выделяемой памяти составляет 81920000 байт или около 78 Мбайт.
Буфер журнала обновлений
Параметр LOGJBUFFER устанавливает количество памяти, используемой
для хранения информации об обновлениях, или журнала изменений базы дан-
ных. Задание правильного размера этой структуры памяти является критичным
для систем, в которых происходит множество DML. они являются
ных. Задание правильного размера этой структуры памяти является критичным
для систем, в которых происходит множество DML. они являются
сердцевиной механизма восстановления Oracle, очень важно задать им правильный размер, не слишком при этом переусердствовав (см. главу "Настройка экземпляра - настройка буферов журнала обновлений и прочая настройка").
Резервируемая область
С возникновением Oracle 7.3 появилась и лучшая поддержка управления во-
просами, поставленными большими хранимыми SQL и PL/SQL (пакетами, про-
цедурами и функциями). Это разделение запоздало, так как
маленькие операторы SQL и большие операторы SQL (или хранимые SQL) час-
то интерферируют друг с другом при их хранении в одной и той же области, та-
ким образом, вызывая старение SQL и фрагментацию коллективного пула.
Поэтому был введен параметр SHARED_POOL_RESERVED_SIZE, единственной
целью которого является разнесение малых и больших SQL по разным областям для того, чтобы они не могли интерферировать друг с другом.
просами, поставленными большими хранимыми SQL и PL/SQL (пакетами, про-
цедурами и функциями). Это разделение запоздало, так как
маленькие операторы SQL и большие операторы SQL (или хранимые SQL) час-
то интерферируют друг с другом при их хранении в одной и той же области, та-
ким образом, вызывая старение SQL и фрагментацию коллективного пула.
Поэтому был введен параметр SHARED_POOL_RESERVED_SIZE, единственной
целью которого является разнесение малых и больших SQL по разным областям для того, чтобы они не могли интерферировать друг с другом.
Большой пул
С появлением Огас1е8 был введен в обиход и новый пул памяти (не входящий в состав области коллективного пула). Добавление большого пула объясняется необходимостью предоставления места параллельным операциям для использования в конфигурациях с MTS и в RMAN. Эта область конфигурируется при установке параметра
Пул Java
Появился в Oracle8i. Конфигурируется параметром JAVA POOL SIZE и используется программами на Java точно так же, как область коллективного пула применяется операторами SQL. Заметьте, что для инсталляции компонента Java необходимо, чтобы этот пул был обязательно сконфигурирован, но рекомендации Oracle кажутся нам слишком узкими. Нужно, чтобы размер пула, устанавливаемого с помощью указанного выше параметра, был около 100 Мбайт. Только в этом случае компонент будет установлен удачно.
Замечание
Вплоть до версии в отчете команды show sga или
в представлении V$SGASTAT размер памяти, выделенной пулу Java, указывался неверно.
< Предыдущая | Следующая > |
---|