oracle数据库内存结构pga/sga/uga做比较分析

时间:2021-11-29 03:38:08

oracle数据库的内存结构比较复杂,下面对pga/sga/uga做比较分析。

1. sga组成:

    database buffer cache:包括 default pool,keep pool,recycle pool;

    redo log buffer
    share pool:包括 library cache,dictionary cache
    large pool
    java pool
    streams pool
    fixed sga

2.pga组成:

    1)sql工作区:sort area(排序区),hash area(构造hash表),bitmap merge area(索引区)

     2)uga区
3.pga和uga比较:
uga:user global area ,是会话含义的内存区
        为了保证数据可以被会话访问到,所以 mts模式属于sga中的大池,专有模式属于pga,属于用户的内存区。
         uga保存当前会话相关的信息,比如会话登录信息、pl/sql包的参数信息,绑定变量的值。
pga:program global area,是操作系统含义上的内存区,
       可以理解为操作系统在一个进程启动时,为他分配的内存空间
        查询使用 show pga;
4.sga和pga比较:
sga:共享数据块,所有进程可以访问,数据并发访问
         涉及lock,latch,锁定和队列
        是数据库最主要优化区域,一些重要的指标:data buffer hit,library hit(hard/soft parse),hot blocks
pga:为专有进程服务,进程间无法数据共享,数据独占
       无需锁定机制
        性能优化只需要考虑它的大小。