07окт
Buffer hit %. STATSPACK
Можно сказать, что этот коэффициент демонстрирует вероятность того, что необходимый нам блок уже находится в памяти (а не на диске). Этот показатель также называют отношением физического чтения к логическому.
Формула подсчета:
select round(100*( 1-(
((select value from stats$sysstat where name ='physical reads' and snap_id=snap_end)-
(select value from stats$sysstat where name ='physical reads' and snap_id=snap_begin)
-
((select value from stats$sysstat where name ='physical reads direct' and snap_id=snap_end)-
(select value from stats$sysstat where name ='physical reads direct' and snap_id=snap_begin))
-
((select value from stats$sysstat where name ='physical reads direct (lob)' and snap_id=snap_end)-
(select value from stats$sysstat where name ='physical reads direct (lob)' and snap_id=snap_begin))
)
/((select value from stats$sysstat where name ='session logical reads' and snap_id=snap_end)-
(select value from stats$sysstat where name ='session logical reads' and snap_id=snap_begin))),2) ratio from dual
Buffer hit - это показатель того, насколько запросы данных удовлетворяются из буферного кэша. Значение близкое к 100% считается лучшим: чтение данных из памяти происходит значительно быстрее, чем выполнение операций чтения/записи на диск. Конечно же, есть исключения: если Ваша база данных – это data warehouse, и в основном происходят массовые загрузки данных, то full-table scans приводит к низкому значению этого коэффициента. Что очень даже приемлемо.
Если значение Buffer hit становится меньше 90 %, то это говорит о том, что много блоков не нашлось в памяти и пришлось считывать с диска. Значит, стоит увеличить буферный кэш. Но не так сразу. Увеличение буферного кэша приводит к уменьшению прочих составляющих SGA. А это может сказаться на производительности. Поэтому думайте, анализируйте и только потом принимайте окончательное решение.
Замечание. Только не думайте, что этот показатель можно вычислить по представлению v$buffer_pool_statistics . Коэффициент полученный таким образом это что-то сродни «средней температуре по больнице». Данные этого представления накапливаются со времени старта экземпляра. Поэтому лучше выполнять STATSPACK в нужные промежутки времени и на основе этих данных проводить анализ.