ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于sga_target

关于sga_target

原创 Linux操作系统 作者:cansion99 时间:2013-04-01 23:20:38 0 删除 编辑
一个sga_target动态修改的问题,sga自动管理的时候,其值最大可以达到sga_max_size参数文件指定的值,也可以动态减小,在该值减小的时候,oracle会指定一个或者多个自动调优的sga中的内存结构释放内存,知道他们到达最小值,不能再减少了为止。oracle在判断sga_target最小值的时候,主要基于一下几点来考虑和判断的
1.sga中自动优化的内存结构的设定值和sga中手动设定的内存结构设定值占用sga的空间。
2CPU的数目。
3.物理内存。
..有些操作系统会有差异
一些UNIX系统不支持动态共享内存(dynamic share memory),此时sga所占的物理内存和sga_max_size相等,很明显,此时设置sga_target比sga_max_size小就毫无意义了,这种情况下,一般不建议设置sga_max_size。
在windows和solaris中sga消耗的内存和sga_target相等,此时sga_target的改变只会影响那些没有手动指定最小值的动态优化内存结构,而不会改变手动优化内存结构。
注释:
sga是由很多内存结构组成,就是所说的pool等内存结构。
当数据库参数sga_target设置值不等于0时,表示开启了自动共享内存管理(automatic share memory management)
(如果不是新环境要查看statistics_level参数是否为typical或者是all,否则无效),共享就是shared pool、large pool、java pool、buffer cache和steams pool(log buffer、keep and recycle buffer caches和nonstandard block size buffer caches也将占用sga_target,但是这几个参数不是共享的)之间的共享,当制定了sga_target后还要将这几个值设为0(完全共享),或者制定其最小值,这些设定了最小值的内存结构就是手动优化内存结构。
 一般开启自动共享内存时,虽然sga_target可以动态调整,但最好是先设置sga_target的一个非零值,然后再开启数据库,动态设置该参数的值由于share pool有的时候可能不会shrink,所以有时候并不能达到预期的效果。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16969562/viewspace-757607/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: ORA-600
下一篇: 记一次故障处理
请登录后发表评论 登录
全部评论

注册时间:2013-03-19

  • 博文量
    8
  • 访问量
    67317