Буферный кэш базы данных традиционно конфигурируется путем установки всего двух параметров инициализации, а именно: DB_BLOCK_SIZE и
устанавливается равным числу
блоков, которые можно разместить в буфере. Типичные значения этого пара-
метра лежат в диапазоне от нескольких сотен до десятков тысяч. Поскольку раз-
мер блока определяет размер каждого из этих буферов, очень важно также
значение параметра Полный размер кэша буфера базы дан-
блоков, которые можно разместить в буфере. Типичные значения этого пара-
метра лежат в диапазоне от нескольких сотен до десятков тысяч. Поскольку раз-
мер блока определяет размер каждого из этих буферов, очень важно также
значение параметра Полный размер кэша буфера базы дан-
ных равен произведению числа блоков на размер блока. Значит, если DB_BLOCK_SIZE = 8192, a DB_BLOCK_BUFFERS = 10000, кэш буфера базы данных будет иметь размер 81920000 байт, или около 80 Мбайт. Это, пожалуй, самая большая требующаяся базовая конфигурация. Размер этого кэша можно увидеть немедленно после запуска экземпляра в строке буферов базы данных:
□ SVHMGR> startup
ORACLE instance started.
Total System Global Area 48572320 bytes
Fixed Size 64912 bytes
Variable Size 45137920 bytes
Database Buffers 2048000 bytes
Redo Buffers 73728 bytes
Database mounted. Database opened.
Точно так же, как Oracle распознал, каким образом объекты SQL и PL/SQL
большого размера опустошают область коллективного пула, он что
большого размера опустошают область коллективного пула, он что
различные модели доступа для таблиц вносят беспорядок в кэш буфера базы данных. В Огас!е8 появились подмножества кэша буфера базы данных, позволяющие АБД разделять таблицы
с
различными потребностями в кэше во многоманалогично тому, как отделяются большие объекты PL/SQL от небольших паке-
тов. За счет добавления
ном кэше базы данных для управления появляются три различные области.
Третьей, конечно, является исходная область, известная как
тов. За счет добавления
игла сохранены-;,
ипула повторного
.
в буфер-ном кэше базы данных для управления появляются три различные области.
Третьей, конечно, является исходная область, известная как
пул по
В Oracle 7.3 и в последующих версиях можно избежать конкуренции при доступе к списку LRU и отыскивания пригодных к использованию буферов, конфигурировать несколько защелок LRU.
Пул по умолчанию
По времени создания это, действительно, первый буферный кэш базы данных.
Память для него никаким специальным образом не выделяется. Если значение
установлено равным какому-то числу буферов, то при этом конфигурируется общее число буферов, доступных всем пулам. Например:
□ DB_BLOCK_BUFFERS = 10000
Любой объект, который не был специально назначен для одного из других
пулов, будет помещен в пул по умолчанию. При конфигурировании нескольких
.. пулов необходимо также конфигурировать несколько защелок LRU, что выпол-
няется при помощи установки значения В идеале
это значение должно быть равно удвоенному числу доступных ЦП экземпляра.
Такое задание дает возможность проактивно сделать число защелок LRU рав-
ным разрешенному максимуму, для того чтобы исключить конкуренцию, вы-
званную недостатком защелок LRU. Опираясь на опыт, можем сказать, что в
случае установки числа защелок равным их максимальному значению мы не на-
блюдали измеримых накладных расходов. По умолчанию Oracle устанавливает
этот параметр равным числу ЦП в системе:
пулов, будет помещен в пул по умолчанию. При конфигурировании нескольких
.. пулов необходимо также конфигурировать несколько защелок LRU, что выпол-
няется при помощи установки значения В идеале
это значение должно быть равно удвоенному числу доступных ЦП экземпляра.
Такое задание дает возможность проактивно сделать число защелок LRU рав-
ным разрешенному максимуму, для того чтобы исключить конкуренцию, вы-
званную недостатком защелок LRU. Опираясь на опыт, можем сказать, что в
случае установки числа защелок равным их максимальному значению мы не на-
блюдали измеримых накладных расходов. По умолчанию Oracle устанавливает
этот параметр равным числу ЦП в системе:
DB_BLOCK_LfiU_LATCHES = 16 ATMs is for an 8-CPU machine '*/
Пулсохранения
Этот пул спроектирован специально для того, чтобы разрешить нужды ма-
лых таблиц, к которым необходим очень быстрый доступ. Таблицы просмотра и
другие малые, но часто используемые таблицы следует назначать в пул сохране-
ния. В этом случае удается избежать усилий, требующихся для повторного счи-
тывания блоков данных с диска, после того как они стали считаться
устаревшими. Объекты, помещенные в пул сохранения, не конкурируют с объ-
ектами, помещенными в другие два пула, и будут устаревать только в том случае,
если их вынудит к этому конкуренция с другими объектами этого пула. Для со-
здания пула сохранения параметр инициализации уста-
навливается равным определенному числу блоков (из значения параметра
DB BLOCK BUFFERS). Однако вы должны также установить число защелок
LRU для этого пула из общего числа DB_BLOCK_LRU_LATCHES:
лых таблиц, к которым необходим очень быстрый доступ. Таблицы просмотра и
другие малые, но часто используемые таблицы следует назначать в пул сохране-
ния. В этом случае удается избежать усилий, требующихся для повторного счи-
тывания блоков данных с диска, после того как они стали считаться
устаревшими. Объекты, помещенные в пул сохранения, не конкурируют с объ-
ектами, помещенными в другие два пула, и будут устаревать только в том случае,
если их вынудит к этому конкуренция с другими объектами этого пула. Для со-
здания пула сохранения параметр инициализации уста-
навливается равным определенному числу блоков (из значения параметра
DB BLOCK BUFFERS). Однако вы должны также установить число защелок
LRU для этого пула из общего числа DB_BLOCK_LRU_LATCHES:
BUFFER_POOL_KEEP = (buffers:2000, lru_latches:2)
Следует иметь в виду, что сумма размеров буферов пула по умолчанию, пула сохранения и пула повторного использования не может быть больше числа блоков, выделенных в параметре DB_IJLOCK_BUFFERS. Точно так же сумма количества защелок для всех трех пулов не должна быть больше числа защелок, определенных параметром
< Предыдущая | Следующая > |
---|