22май
Диагностика буферного кеша.
Для этого обычно используются следующие представления V$SYSSTAT и V$SESSTAT.Основным показателем эффективности работы буферного кэшем является коэффициент попадания в буфер данных при обращении к блокам (Hit ratio).
Этот показатель рассчитывается как отношение физического чтения к логическому, а вернее сколько в ходе работы пришлось блоков прочитать с диска к общим потребностям в блоках:
Hit ratio = 1 - (physical reads/(block gets + consistent gets))/100
- Статистика «Physical reads» - общее число блоков данных прочитанных с диска.
- Статистика «Block gets» - общее число буферов, полученных для обновления
- Статистика «Consistent gets» - общее число буферов, полученных в ходе согласованного чтении (CR)
SELECT ROUND( (1 - (PHY.VALUE/(CUR.VALUE + CON.VALUE)))*100, 1)||'%' ratio
FROM V$SYSSTAT PHY, V$SYSSTAT CUR, V$SYSSTAT CON
WHERE PHY.NAME = 'physical reads'
AND CUR.NAME = 'db block gets'
AND CON.NAME = 'consistent gets';
После того, как Вы получили значение, сравните его по следующей шкале:
Так можно вычислить hit ratio для каждой сессии :
SELECT PHY.SID,
S.USERNAME,
1 - (PHY.VALUE)/(CUR.VALUE + CON.VALUE) BUFFER_HITRATIO
FROM V$SESSTAT PHY, V$SESSTAT CUR, V$SESSTAT CON,
V$STATNAME S1, V$STATNAME S2, V$STATNAME S3,
V$SESSION S
WHERE S1.NAME = 'physical reads'
AND S2.NAME = 'db block gets'
AND S3.NAME = 'consistent gets'
AND PHY.STATISTIC# = S1.STATISTIC#
AND CUR.STATISTIC# = S2.STATISTIC#
AND CON.STATISTIC# = S3.STATISTIC#
AND CUR.VALUE <> 0
AND CON.VALUE <> 0
AND PHY.SID = CUR.SID
AND PHY.SID = CON.SID
AND PHY.SID = S.SID
Для каждого пула можно так посмотреть на наш коэффициент:
SELECT NAME,BLOCK_SIZE,ROUND( (1 - (PHYSICAL_READS/(DB_BLOCK_GETS + CONSISTENT_GETS)))*100) || '%' ratio FROM V$BUFFER_POOL_STATISTICS
Литература
http://citforum.univ.kiev.ua/database/oracle/kyte/02.shtml
http://www.praetoriate.com/t_oracle_data_block_caching_sga.htm
http://citforum.univ.kiev.ua/database/oracle/kyte/02.shtml
www.dcopeland.net/files/IT453chapter02buffercache.ppt
http://advait.wordpress.com/2007/06/13/tuning-buffer-cache-oracle-database-10g/
http://www.praetoriate.com/t_%20tuning_data_buffer_hit_ratio.htm