Oracle9i自动PGA管理的新特性

文章作者 100test 发表时间 2007:03:14 13:50:31
来源 100Test.Com百考试题网


在oracle9i之前,pga的计算和控制都是比较复杂的事情,从oracle9i开始,oracle提供了一种sql内存管理的新方法:自动化sql执行内存管理(automated sql execution memory management),使用这个新特性,oracle可以自动调整s q l内存区,而不用关闭数据库,这一改进大大简化了dba的工作,同时也提高了oracle数据库的性能。

为实现自动的pga管理,oracle引入了几个新的初始化参数:

1.pga_aggregate_target-此参数用来指定所有session总计可以使用最大pga内存。这个参数可以被动态的更改,取值范围从10m —— (4096g-1 )bytes. 2.workarea_size_policy-此参数用于开关pga内存自动管理功能,该参数有两个选项:auto 和 manual,当设置为auto时,数据库使用oracle9i提供的自动pga管理功能,当设置为manual时,则仍然使用oracle9i前手工管理的方式。

缺省的,oracle9i中workarea_size_policy被设置为auto.

需要注意的是,在oracle9i中,pga_aggregate_target参数仅对专用服务器模式下(dedicated server)的专属连接有效,但是对共享服务器(shared server)连接无效;从oracle10g开始pga_aggregate_target对专用服务器连接和共享服务器连接同时生效。

pga_aggregate_target 参数同时限制全局pga分配和私有工作区内存分配:

1.对于串行操作,单个sql操作能够使用的pga内存按照以下原则分配:min(5% pga_aggregate_target,100mb)

2.对于并行操作30% pga_aggregate_target /dop (dop=degree of parallelism 并行度)

要理解pga的自动调整,还需要区分可调整内存(tunable memory size)与不可调整内存(untunable memory size)。可调整内存是由sql工作区使用的,其余部分是不可调整内存。

启用了自动pga调整之后, oracle仍然需要遵循以下原则:

untunable memory size tunable memory size <= pga_aggregate_target

数据库系统只能控制可调整部分的内存分配,如果可调整的部分过小,则oracle永远也不会强制启用这个等式。

另外,pga_aggregate_target参数在cbo优化器模式下,对于sql的执行计划会产生影响。oracle在评估执行计划时会根据pga_aggregate_target参数评估在sort,hash-join或bitmap操作时能够使用的最大或最小内存,从而选择最优的执行计划。

对于pga_aggregate_target参数的设置,oracle提供这样一个建议方案1.对于oltp系统pga_aggregate_target = ( * 80%) * 20% 2.对于dss系统pga_aggregate_target = ( * 80%) * 50%

也就是说,对于一个单纯的数据库服务器,通常我们需要保留20%的物理内存给操作系统使用,剩余80%可以分配给oracle使用。oracle使用的内存分为两部分sga和pga,那么pga可以占用oracle消耗总内存的20%(oltp系统)至50%(dss系统)。

这只是一个建议设置,更进一步的我们应该根据数据库的具体性能指标来调整和优化pga的使用。



相关文章


让window服务进程中自动加载MYSQL
如何使用Oracle中的COALESCE函数
Oracle的SOA瞄准SAP的Netweaver
新手必须了解的oracle入门知识
Oracle9i自动PGA管理的新特性
Oracle的数据库的数据备份与恢复
保护数据库安全关键在于加密
Oracle10g的安装步骤和注意事项
有关OracleIndex的三个问题(一)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛