Fosdccf.blog.chinaunix.net
sdccf
全部博文(19283)
Linux酷软(214)
tmp(0)
PostgreSQL(93)
Solaris(383)
AIX(173)
SCOUNIX(575)
DB2(1005)
Shell(386)
C/C++(1187)
MySQL(1750)
Sybase(465)
Oracle(3695)
Informix(548)
HP-UX(0)
IBM AIX(2)
Sun Solaris(0)
BSD(1)
Linux(8597)
SCO UNIX(23)
2011年(1)
2009年(125)
2008年(19094)
2007年(63)
clifford
linky521
曾德标
fengzhan
leon_yu
mcuflowe
yt200902
guanyuji
GY123456
snow888
carlos94
丸喵喵
sean229
cxunix
可怜的猪
cqxc413
xzzgege
wb123456
分类: Oracle
2008-04-30 16:32:24
配置和使用REDO LOG BUFFER 我们知道服务器进程会把把buffe cache里面的数据库块改变保存在重做log buffer里面。在满足一定条件,LGWR进程就会把重做buffer log里面的数据写入在线日志中: 1.log buffer 超过它1/3大小 2.服务器进程运行COMMIT或者ROLLBACK会触发服务器进程运行LGWR 3.DBWR进程会触发LGWR 一个较大的buffer能够给于更多redo空间,使得LGWR能够有效的写出redo数据。一个太小的buffer,如果update频繁,那么LGWR也会不停的将数据刷出。 如果一个服务器拥有强劲的CPU和差劲的磁盘,一个较大buffer可以使得处理器可能会弥补磁盘差劲的效率。在这种情况,你还可以: 1.改进checkpointing 或者 归档进程。 2.改善log writer的性能(移动所有online log到更快的磁盘) 更好的使用redo log buffer 其实很简单: 控制好你的commit事务。 当读取大量数据的时候,使用NOLOGGING操作。 redo log buffer的大小使用初始化参数LOG_BUFFER定义,它可以动态修改。确定log buffer的大小 通常当应用程序的插入,修改,删除大量的数据的时候,需要改变默认的log buffer的大小。log buffer在SGA里面是相对小的一块,但是适当的配置它的大小,在很多请客下能够显著的改善性能。 一般,在系统初始估算的buffer大小的规则是: 最大(0.5M, (128K * number of cpus)) 在大多数系统中,超过1M的log buffer 不会有任何性能改善。不过过多的log buffer也不会对性能有负面的影响,它只是多余的内存罢了。Log buffer的统计 统计REDO BUFFER ALLOCATION RETRIES反应了用户进程等待redo log buffer空间的情况。这个统计在V$SYSSTAT中可以查询到。 查询如下: SELECT NAME, VALUE FROM V$SYSSTAT WHERE NAME = 'redo buffer allocation retries'; 如果redo buffer allocation retries增长过快,那么说明进程存在很多redo log buffer的空间分配等待。可以试着增加LOG_BUFFER的大小。
原文:http://valen.blog.ccidnet.com/blog-htm-itemid-154484-do-showone-type-blog-uid-51502.html
上一篇:Oracle 内存的配置和使用 (10g r2) <5>
下一篇:Oracle 内存的配置和使用 (10g r2) <3>
登录 注册