Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

109

积分

0

好友

9

主题
1#
发表于 2012-5-18 09:00:35 | 查看: 5986| 回复: 3
以下是关于SGA_TARGET的说明:
      在10g之前,SGA的各个内存区的大小都需要通过各自的参数指定,并且都无法超过参数指定大小的值,尽管他们之和可能并没有达到SGA的最大限制。此外,一旦分配后,各个区的内存只能给本区使用,相互之间是不能共享的。有了SGA_TARGET这个参数后,你就不需要为每个内存区来指定大小了。SGA_TARGET指定了SGA可以使用的最大内存大小,而SGA中各个内存的大小由Oracle自行控制,不需要人为指定。
现在的问题是:如果设置的SGA_TARGET参数不为0,而且又手工设置了其他参数,比如
SGA_MAX_SIZE = 2GB
SGA_TARGET = 2GB
SHARED_POOL_SIZE = 120MB
DB_CACHE_SIZE = 896MB
STREAM_POOL_SIZE = 0
LARGE_POOL_SIZE = 110MB
这个时候, SHARED_POOL_SIZE,  DB_CACHE_SIZE,  LARGE_POOL_SIZE之间的内存分配及自动调整又是怎么样的呢?是按手工设置的值分配初始大小,然后使用过程中动态分配超过初始值的部分,还是系统会自动忽略手工设置的值,全部动态分配呢?会不会出现实际分配的值比手工设定的值小的情况(比如SHARED_POOL_SIZE在某一时刻分配的值为100MB(<120MB))?
2#
发表于 2012-5-18 12:20:20
ODM FINDING:

SGA_TARGET specifies the total size of all SGA components. If SGA_TARGET is specified, then the following memory pools are automatically sized:

    Buffer cache (DB_CACHE_SIZE)

    Shared pool (SHARED_POOL_SIZE)

    Large pool (LARGE_POOL_SIZE)

    Java pool (JAVA_POOL_SIZE)

If these automatically tuned memory pools are set to non-zero values, then those values are used as minimum levels by Automatic Shared Memory Management. You would set minimum values if an application component needs a minimum amount of memory to function properly.



当设置 SGA_TARGET为非零值, 且手动设置了 各pool的size如 shared_pool_size 、 DB_cache_size 时 这些设置值成为ASMM下 这些pool的 最小值。

如设置sga_target为非零值, 且设置shared_pool_size=500M, 则不管ASMM如何自动管理 shared pool如何收缩 都不允许 shared pool size比500MB更小。

回复 只看该作者 道具 举报

3#
发表于 2012-5-18 15:44:11
谢谢,又进步一点点了!另外请教一下maclean,你所引用的ODM FINDING,ODM是什么?在哪里能下载到?

回复 只看该作者 道具 举报

4#
发表于 2012-5-18 23:51:53

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-26 01:06 , Processed in 0.046731 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569