日期:2014-05-16  浏览次数:20414 次

oracle sga相关

oracle主要影响性能的内存:

?

  • Shared pool

  • Large pool

  • Java pool

  • Buffer cache

  • Streams pool size

  • Log buffer

  • Process-private memory, such as memory used for sorting and hash joins

    share pool

    存放不同的数据类型,如plsql块和sql语句,字典数据

    优点:
    减少sql语句解析开销
    减少资源锁定
    减少内存需求
    减少io,字典保存在此。

    large pool

    不是LRU的,不会把老的数据移除。
    应用并行查询,并行查询用共享池保存并行查询信息
    恢复管理用共享池保存备份的信息
    共享服务用共享池保存每个session信息

    ?

    java pool

    主要用于JAVA语言的开发

    buffer cache

    作用保存从磁盘读的block

    buffer由keep pool,recycle pool,default pool组成

    keep pool常用小表,recycle pool不常使用的大段,default pool 上述两个不符放在这里。

    修改表的保存池 alter table table_name storage(buffer_pool keep);


    ?

自动共享内存管理

?

设置SGA_TARGET为非零,STATISTICS_LEVEL为TYPICAL或者ALL启动自动共享内存。

alter system set sga_target=500m scope=both statistics=typical;

一般情况下sga_target<=sga_max_size;

注意sga target+pga_target=memory_target或者memory_target不能小于之和,这样oracle启动时会报错。

解决方式

sqlplus / as sysdba;

通过spfile创建pfile;

create pfile ='/home/oracle/initora11g.ora' from spfile;

修改memory_target或者sga_target值

创建spfile

create spfile from pfile = '/home/oracle/initora11g.ora';

starup重启完成


设定cursor_sharing

如果该参数设置为similar,那么如果在shared pool中无法找到exact statement的存在的时候,就会在shared pool进行一次新的查找,就是查找和当前要解析的语句是否是similar statement的语句。这里需要对similar statement进行解释,similar statement就是除了value of some literal不同的语句,别的地方都相同的语句。比如下面: