Oracle9i的增强型内存使用率查看表
2007-05-12 12:25:46 来源:WEB开发网核心提示: 这个例子深入到了Oracle数据库引擎的行为中,例如,Oracle9i的增强型内存使用率查看表(2),你可以看到Oracle的日志编写器(LGWR)进程是PGA内存最大的消耗者,其原因是很清楚的:Oracle的日志编写器进程必须把重做日志镜像(redo log image)从Oracle的
这个例子深入到了Oracle数据库引擎的行为中。例如,你可以看到Oracle的日志编写器(LGWR)进程是PGA内存最大的消耗者,其原因是很清楚的:Oracle的日志编写器进程必须把重做日志镜像(redo log image)从Oracle的日志缓冲器(在内存里)里传输到在线重做日志文件系统里。你还可以看到Oracle的数据库编写器(DBW0)进程也有很高的内存占用率,这也是有原因的:Oracle的异步I/O进程必须使用大量的内存资源来保证所有数据库的更改都被成功地写到数据库里。
各个进程所要使用的内存大小
在Oracle9i里查看内存使用的真实值就是查看各个进程的内存使用率。Oracle9i现在有一个共享的内存区域,叫做pga_aggregate_target。在使用Oracle的多线程服务器时, pga_aggregate_target参数的工作方法和Oracle的大内存池相类似,只有一个显著的不同点。有了一个共享内存区域,Oracle的各个进程,在进行排序和散裂合并时,就可以不受限制地使用多达内存池总量5%的内存。这相对于Oracle8i来说是个重大的改进,它原来要求每个PGA区域的大小必须限制在sort_area_size初始化参数所设定的值里。
Oracle9i还提供了一个叫做v$pgastat的新字典查看表。v$pgastat查看表能显示数据库内每个内存区域内的内存使用率的总量。这些信息可以告诉你内存使用率的峰值,还能允许你根据对系统的相对压力来调整内存需求。以下是一个简单的对v$pgastat的查询:
column name format a40
column value format 999,999,999
select name,value
from
v$pgastat
order by
value desc;
从这个列表里你可以看到pga_aggregate_target的值以及这个实例所使用的所有内存区域的峰值。现在我们再来看看最佳、单周期和多周期的内存运行情况。
更多精彩
赞助商链接