程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle9i 性能調整與優化(1)

Oracle9i 性能調整與優化(1)

編輯:關於Oracle數據庫

  第五課   調整緩沖區高速緩存(Buffer Cache)的性能

  Buffer cache由數據塊組成。

  1. Buffer cache的工作原理

  LRU列表:MRU  ………………。 LRU.(全表掃描FTS放在LRU端。)

  緩沖區塊的狀態:Free、Pinned、Clean、Dirty.

  Dirty List或Write List(寫列表)。

  數據庫寫進程DBW0將緩沖區高速緩存中的數據寫到數據文件中。

  2.        測量Buffer cache的性能

  測量Buffer cache的命中率:

  SQL> select 1-((physical.value – direct.value – lobs.value)/logical.value) “Buffer Cache Hit Ratio” from V$SYSSTAT physical, V$SYSSTAT direct,

  V$SYSSTAT lobs, V$SYSSTAT logical where physical.name = ‘physical reads’

  And direct.name = ‘physical reads direct’ and

  lobs.name = ‘physical reads direct (lob)’

  And logical.name = ‘session logical reads’;

  “Buffer Cache Hit Ratio”的值要 > 90%.

  使用STATSPACK來監視Buffer cache.

  使用REPORT.TXT來監視Buffer cache.

  非命中率指標:Free Buffer Inspected、Free Buffer Waits、Buffer Busy Waits.(V$sysstat)

  使用Performance Manager(數據庫例程)來監視Buffer Cache.

  3. 提高緩沖區高速緩存性能的方法

  加大Buffer Cache的大小:init.ora參數DB_CACHE_SIZE(動態參數)。

  使用Buffer Cache Advisory功能決定Buffer Cache的大小:

  首先將init.ora參數DB_CACHE_ADVICE設成ON,然後查詢V$DB_CACHE_ADVICE.

  使用多個緩沖區池:

  Keep Pool: DB_KEEP_CACHE_SIZE

  Recycle Pool:DB_RECYCLE_CACHE_SIZE

  Default Pool: DB_CACHE_SIZE

  在內存中緩存表: 表的CACHE選項,對優化小表的全表掃描。

  正確創建索引。

  4. 調整Large Pool和JAVA POOL

  Large Pool用於共享服務器、RMAN、並行查詢、DBWR的從屬進程。

  Large Pool的大小通過init.ora參數Large_pool_size設置。默認為8M.

  從V$sgastat中監視free memory的值:

  SQL>SELECT name,bytes FROM V$sgastat WHERE pool = ‘large pool’;

  JAVA_POOL池的默認大小為32M.對於大型Java應用程序,JAVA_POOL池的大小應大於50M.

  init.ora參數java_pool_size

  從V$sgastat中監視free memory的值。

  SQL>SELECT name,bytes FROM V$sgastat WHERE pool = ‘java pool’;

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved