浅谈oracle 内存结构(一) 系统全局区 SGA

SGA(系统全局区)是用于存储数据库信息的内存区,是实例的重要组成部分,也是最影响性能的部分。
SGA主要包括以下几个部分:

1、 共享池(Shared pool): 共享池是内存中最关键的部分之一,是oracle缓存程序数据的地方,在共享池中,保留着每一条执行过的sql解析后的全部信息。由于分配给共享池的内存区域是有限的(分配太对会消耗过多CPU资源,分配太少会影响性能), 所以当有新的SQL执行的时候, 原先已经加载的sql会根据LRU(最近最少使用算法)进行管理。
 1 )  library cache (库高速缓存区):存储已经解析过的sql的信息。
 2 )dictionary cache(数据字典缓存):存放系统参数。
 3 )Result Cache (结果高速缓存):用于存储和检索高速缓存的结果  。
          1 >SQL query result cache :  将SQL语句的查询结果直接存储在 SQL query result cache中,再次执行相同语句的时候会直接调用内存中的结果集,减少I/O的消耗。
          2 >PL/SQL function result cache :  将PL/SQL函数的正确执行的结果存放在  PL/SQL Function Result Cache中,  再次执行相同函数时直接调用内存中的结果集 ,减少IO消耗  。
                                                       
2、Fixed SGA (固定SGA):里面存储了内存中其他区的位置。
3、Redo buffer (重做缓冲区):如果数据需要写到在线重做日志中,则在写至磁盘之前要在 Redo Buffer 中临时缓存这些数据。数据在重做缓冲区中停留的时间不会太长,oracle会通过以下机制,将数据通过LGWR从 Redo Buffer 中 flush 到磁盘上:
    1 ) 每3秒一次
    2 ) 请求提交 commit
    3 ) 要求 LGWR 切换日志
    4 ) 重做缓冲区 1/3 满,或者包含了 1MB的缓存重做日志数据
4、Block buffer cache(块缓冲区):将脏数据写入磁盘之前或者从磁盘读取数据块之后,这些数据会存放在Block buffer cache 中。为了根据不同的需求保留数据,oracle把这块内存分成了三个部分
    1 ) defaul pool (默认池):所有段块一般都在defaul pool中。在oracle 8.0 之前的版本, defaul pool 就是唯一缓冲区池。
    2 ) keep pool (保留池) :频繁访问的段会存放在 keep pool 中,以此来防止数据 aging
    3 ) recycle pool (回收池) :将随机大段与其他段分开保存,访问很随机的大段可以放在 recycle pool 中,因为大块会导致过量的缓存区 flush,并且如果当你在想用这个块的时候,此时的数据也许已经aging而退出缓存。
5、Large pool (大池) :用于大块内存的分配。shared pool 不会处理过大的内存块,所以这部分数据就交给 large pool 进行处理, 并且处理方式与 shared pool不同,large pool 不会缓存和重用这些大块,在这些内存用完之后,会立即释放。
     large pool 专用以下几种情况:
   1 ) 共享服务器连接,用于在SGA中分配 UGA区,当用户断开以后,UGA会被快速释放。
   2 ) 语句并行执行,允许分配进行间的消息缓存区,这些缓冲区用于协调并行查询服务器。一旦发送了缓冲区中的消息,便立即释放
   3 ) 备份,备份缓冲区很大,在oracle用完了这些缓冲区,就会被立即释放。
6、Java pool(Jave 池) :在运行Java的时候会用到 java pool。
7、Stream pool (流池):10G版本 引入,用于缓存流进程在数据库间复制/移动数据时使用的队列消息,是 oracle advanced queue(oracle 高级队列)技术的一种拓展应用,需要注意的是,如果stream pool 设置过小,在应用EXPDP技术时,会产生错误信息。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值