Oracle 8i 引入中點插入與觸碰計數機制,徹底改變緩衝區管理。理解內部運作,才能精準調校 DB_CACHE_SIZE、多緩衝池與 KEEP/RECYCLE 策略。
_db_percent_hot_default_db_percent_hot_keep_db_percent_hot_recycleSELECT obj, dbarfil, dbablk, tch
FROM x$bh
WHERE tch > 10
ORDER BY tch DESC;
TCH:觸碰計數,超過 _db_aging_hot_criteria(預設 3)則升入熱區。若資料庫 < 20 GB,配置足夠 DB_BLOCK_BUFFERS(或 DB_CACHE_SIZE)一次載入全庫:
SELECT COUNT(*) FROM table 逐表預熱。SELECT 1 - (phy.reads / (db.block.gets + consistent.gets)) FROM v$sysstat;
< 90% 即需擴充緩衝區或檢視 SQL 效率。
緩衝區不是越大越好,超過實體記憶體導致分頁交換反而災難性降級。精準測量、分池管理、熱塊鎖定,才是正道。