调整以优化性能:Oracle9i 性能调整和优化(1)

="t18">   第 5课 调整缓冲区高速缓存Cache(Buffer Cache)性能   Buffer cache由数据块组成   1. Buffer cache工作原理   LRU列表:MRU ……………… LRU.(全表扫描FTS放在LRU端)   缓冲区块状态:Free、Pinned、Clean、Dirty.   Dirty List或Write List(写列表)   数据库写进程DBW0将缓冲区高速缓存Cache中数据写到数据文件中   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. 提高缓冲区高速缓存Cache性能思路方法   加大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表: 表CACHE选项对优化小表全表扫描   正确创建索引   4. 调整Large Pool和Java POOL   Large Pool用于共享服务器、RMAN、并行查询、DBWR从属进程   Large Pool大小通过init.ora参数Large_pool_size设置默认为8M.   从V$sgastat中监视free memory值:   SQL>SELECT names 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 names FROM V$sgastat WHERE pool = ‘java pool’;   第 6课 调整重做有关性能   Oracle重做有关组件包括:Redo Log Buffer、Online Redo Log、LGWR、Archive Log、Checkpo、Arch0.   1. 监视Redo Log Buffer性能   Redo Log Buffer不采用LRU(Least Recently Used)算法治理   当下列事件发生时Redo Log Buffer内容存盘:   Commit时、每3秒、空间使用1/3、达到1M、检查点   假如写入Redo Log Buffer速度超过LGWR存盘速度就会因等待而降低性能   监视Redo Log Buffer重试率(<1%)   Select retries.value/entries.value “Redo Log Buffer Retry Ratio”   From V$sysstat retries V$sysstat entries   Where retries.name = ‘redo buffer allocation retries’   And entries.name = ‘redo entries’;
  “Redo Log Buffer Retry Ratio”值要 < 1%.   Select namevalue from V$sysstat where name=‘redo log space requests’;   假如该值大需要增加Redo Log Buffer.   2. 提高Redo Log Buffer性能   增加Redo Log Buffer大小:init.ora参数log_buffer.   减小重做日志生成量(假如设置表NOLOGGING属性下列操作不记录在Online Redo Log中:用SQL* Loader直接路径加载   NOLOGGING属性还可用于下列SQL语句:CREATE TABLE AS SELECT、CREATE INDEX、   ALTER INDEX REBUILD、CREATE TABELSPACE)   3. 调整检查点进程性能   测量检查点进程性能:没有完成检查点进程次数   select * from V$system_event;   两个事件:checkpo completed、log file switch(checkpo incomplete)   Select * from V$sysstat.   background checkpos started和background checkpos completed.   使用Alert日志来记录检查点进程:init.ora参数log_checkpo_to_alert.   使用Performance Manager来测量检查点进程性能:I/O中平均灰数据队列长度(假如为0介绍说明检查点太频繁)   建议调整online redo log大小使检查点进程每20-30分钟执行   4. 调整联机重做日志文件   使用V$system_event来监视联机重做日志文件性能:   log file parallel write、log file switch completed.   调整联机重做日志文件思路方法:和数据文件、控制文件、归档日志文件分开放在原始设备上   5. 调整归档性能   检查归档进程性能:通过V$system_event中log file switch(archiving needed)事件   检查每个归档进程状态:V$archive_processes.   创建多个归档进程:init.ora参数LOG_ARCHIVE_MAX_PROCESSES(默认为2)
Tags:  vista性能优化 性能优化 oracle9i 调整以优化性能

延伸阅读

最新评论

发表评论