Расчет частоты успешных обращений к буферному кэшу

Оценить
(0 голоса)

Как уже было показано в главе 7, частота успешных обращений к буферному кэшу играет важную роль в производительности БД и в особенности для рабочих нагрузок OLTP. Размер буферного кэша Oracle устанавливается в соответствии со значением параметра db_block_buffers в файле init.ora (или в соответствии со значением параметра db_cache_size в Oracle9i).

Отчет сценария statspack показывает частоту успешных обращений к буферному кэшу (под заголовком Buffer Hit Ratio для Oracle8.1.6 и под заголовком Buffer Hit % для более поздних версий). Файл report.txt, который создается сценариями utlbstat и utlestat, не содержит частоту успешных обращений, хотя вся необходимая для этого информация имеется.

Формула для вычисления частоты успешных обращений к буферному кэшу

Частота успешных обращений к буферному кэшу может быть рассчитана на основе значений перечисленных переменных (не все из них используются во всех версиях СУБД Oracle):

•             physical reads: Количество запросов на чтение данных, которые потребовали, чтобы блок был считан с диска.

•             physical reads direct: Количество запросов на чтение данных, которые напрямую считывают блок данных с диска, минуя буферный кэш. Например, операции чтения, выполняемые в процессе параллельных сканирований таблиц, игнорируют буферный кэш.

•             physical reads direct (LOB): Количество запросов на чтение LOB (large-object - больших объектов), при которых блок данных напрямую считывается с диска, минуя буферный кэш.

•             db block gets: Значение этой переменной увеличивается, когда выполняется чтение блоков для обновления и чтение блоков сегментов заголовка.

•             consistent gets: Эта переменная определяет количество раз, когда для блока данных требовалось непротиворечивое чтение.

Эта статистика измеряет количество блоков, к которым осуществлялся доступ с включением проверок SCN (System Change Number - номера системного изменения). SCN - уникальный номер, присваиваемый системой Oracle файлу данных и заголовкам блоков в порядке возрастания и идентифицирующий модификации транзакций. Этот номер проверяется для того, чтобы гарантировать актуальность данных. Если SCN некоторой строки изменился с момента начала транзакции, то это означает, что данная строка должна была быть модифицирована другой транзакцией; предшествующий образ такой строки будет сохранен в сегменте отката.

Значение SCN увеличивается по мере того, как в данные вносятся изменения. Каждая строка (и блок, в котором эта строка сохраняется) содержит копию того SCN, который был текущим во время последнего изменения данной строки. Когда данный блок выгружается на диск с помощью Database Writers (механизмов записи БД, или редакторов БД), значение SCN на диске будет соответствовать значению SCN того же самого блока в буферном кэше.

СУБД Oracle использует систему номеров SCN для того, чтобы гарантировать непротиворечивость данных и помочь в восстановлении БД после сбоя. В процессе просмотра и последующего восстановления системы, если SCN некоторого блока на диске является таким же или более поздним, чем SCN в журнале восстановления, то нет никакой необходимости выполнять повтор данной транзакции.

Прогнозирование частоты успешных обращений к кэшу
Мониторинг СУБД Oracle с использованием utlbstat/utlestat
Библиотечный кэш
Подключения пользователей
Статистика БД

Добавить комментарий


Защитный код
Обновить