Buffer Cache.
Buffer Cache используется при любых запросах или изменения. Этот кэш уменьшает
число дисковых операций ввода-вывода, сохраняя данные последних транзакций.
Суть его работы состоит в следующем: при выполнении некоторого оператора,
ORACLE находит на диске блок данных, содержащий запрошенную строку. Затем
считывает этот блок с диска в Buffer Cache. Если другая транзакция хочет
обновить ту же или другую строку в этом блоке данных, то доступа к диску уже не
требуется.
ORACLE собирает и хранит статистику, отображающую доступ к данным, в системной
таблице V$SYSSTAT. Статистика по использованию Buffer Cache хранится в этой
таблице в следующих столбцах:
DB BLOCK GETS и CONSISTENT GETS - сумма этих двух столбцов показывает общее
число запросов данных.
PHYSICAL READS - количество раз, когда данных в Buffer Cache не оказалось, и
пришлось обратиться к файлам данных на диске.
SELECT name, value
FROM v$sysstat
WHERE name IN ('db block gets', 'consistent gets', 'physical reads');
Выполнив приведенный запрос и обнаружив, что отношение числа PHYSICAL READS к
сумме DB BLOCK GETS и CONSISTENT GETS превышает 20%-30%, надо увеличить
параметр DB_BLOCK_BUFFERS. Этот параметр задает количество блоков данных,
которые должен содержать Buffer Cache. Размер одного блока данных соответствует
параметру DB_BLOCK_SIZE. Параметр DB_BLOCK_BUFFERS также задается в файле
INIT.ORA со всеми вытекающими отсюда последствиями.