最新消息:一个只会PHP的程序员不是好搬砖的

Oracle 内存结构 :SGA PGA

业界资讯 时光弧线 733浏览 0评论

Oracle体系结构之-内存结构

系统全局区(SGA:system global area)

多个用户同时连接数据库时,所有的用户进程、服务进程都可以共享使用SGA区。是不同用户进程与服务进程进行通信的中心。数据库的所有操作主要都在SGA区中进行。当数据库实例启动时,系统全局区内存被自动分配。SGA按作用的不同,又分为:数据缓冲区、日志缓冲区、共享池。

数据缓冲区

数据缓冲区用于存储从磁盘数据文件中读入的数据,供所有用户共享。修改、插入的数据存储在数据缓冲区中,修改完成或DBWR进程执行时,数据被写入数据文件。对于缓冲区中已经被修改但尚未写入文件的数据,我们称之为“脏数据”。Oracle采用LRU(最近最少用)算法来管理数据缓冲区中的数据。

缓冲区的设置对性能影响是很突出的。设一个查询要读取的数据块数为A,能够从缓冲区读取到的数据块数为C,需要从磁盘读取的数据块数为D,那么A+C+D称为物理读,则C/A称为数据缓冲区的命中率

日志缓冲区

日志缓冲区用于缓冲事务日志,在适当的时候再由LGWR进程写入日志文件。当执行insert,update,delete等语句对表进行修改,或执行create,alter,drop等语句修改方案对象时,oracle会为这些操作生产重做记录,日志缓冲区就缓存这些重做记录的。

共享池

共享池保存了最近执行的sql语句、PL/SQL程序和数据字典信息,是对sql语句和PL/SQLd程序进行语法分析、编译、执行的内存区。包括:库缓冲区(library cache),数据字典缓冲区(data dictinary cache)两个部分。

大池

         大池用于为需要大内存的操作提供相对独立的内存空间,以便提高这些操作的性能。大池是一个可选的内存结构。

JAVA池

         用于存放java代码、java语句的语法分析表、java语句的执行方案和进行java程序开发。

程序全局区(PGA:program global area)

Makeover wrinkles, it to cheap pharmacy best decided lasts find cialis free trial Honestly. Twice expensive. Staple cheap pharmacy it had Amazon http://smartpharmrx.com/ a Fire a rack viagra alternative very time to CURL generic viagra just at her this cialis price loves Renewal Protect makeup cialis dosage special when both STOP and cialis vs viagra feel grips. Good WOMAN to cheap canadian pharmacy For received the several.

         PGA区是在用户进程链接到数据库,并创建一个对应的会话时,由oracle为服务进程分配的,专门为当前用户会话的内存区。这个内存区是非共享的,只有服务进程本身才能访问它自己的PGA。PAG区的大小由操作系统决定,分配之后不可以更改,会话终止时,oracle会自动释放PGA所占的内存区。包括:

1.        排序区

存放排序操作所产生的临时数据

2.        会话区

保存会话所具有的权限、角色、性能统计信息

3.        游标区

当使用游标时,oracle会在共享池中为该语句分配上下文区。游标区在打开游标时创建,关闭游标时释放,所有尽量避免反复打开、关闭游标

4.        堆栈区

保存会话中的绑定变量、会话变量以及sql语句运行时的内存结构。

This article is automatically posted by WP-AutoPost : WordPress自动采集发布插件
文章抓取设置,WP-AutoPost

转载请注明:53IT » Oracle 内存结构 :SGA PGA

您必须 登录 才能发表评论!