目标

  1.SGA结构

  2.PGA结构

1.SGA

Shared pool
1)、共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域。
     在执行SELECT * FROM emp语句时,会对sql语句进行语法分析->编译->生成执行计划->运行执行计划等,这些操作都在共享池中完成;
     如果再次执行SELECT * FROM emp语句时,会在共享池中查找是否有相同的sql,如果存在则省去编译、生成执行计划操作步骤而是直接运行执行计划。
     因此养成良好的编码习惯对于提高oracle执行效率非常有帮助。
2)、共享池由库缓存和数据字典缓存组成。
3)、共享池的大小直接影响数据库的性能。 Database buffer cach
1)、用于存储从磁盘数据文件中读入的数据,所有用户共享。
2)、服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。
3)、数据缓冲区的大小对数据库的读取速度有直接的影响。
4)、硬盘上的数据文件中的数据,如何返回给用户的?
i、从硬盘取出来,直接返回给用户,使得获取数据的效率非常低。
ii、从硬盘取出来,放到数据缓冲区,从数据缓冲区中把数据返回给用户。下次读取同样的数据的话,直接从数据缓冲区中获取,不需要再从硬盘获取。 Redo log buffer
1)、日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。
2)、当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。
3)、相对来说,日志缓冲区对数据库的性能影响较小。
eg、UPDATE emp SET empno=7935 WHERE empno=7934;
   首先 在日记缓冲区中被记录,
   其次 某个时候(三种情况;一、日志缓冲区中的记录达到1M 二、每隔3秒 三、日志缓冲区已经用了三分之一,满足其中任意一项就可以)把日志缓冲区中的这些记录写到在线日志中去。 Large pool
为了进行大的后台进程操作而分配的内存空间,主要指备份恢复、大型IO操作、并行查询等。 Stream pool
为了stream应用而分配的内存空间,高级复制技术一部分。 JAVA pool
为了java应用而分配的内存空间。 缓冲池:
Keep buffer pool
此池用于保留内存中可能要重用的对象,将这些对象保留在内存中可减少 I/O操作。
   通过使池的大小大于分配给该池的各个段的总大小,可以将缓冲区保留在此池中,这意味着缓冲区不必执行过期处理。可
   通过指定DB_KEEP_CACHE_SIZE参数的值来配置
Recycle buffer pool
此池用于内存中重用几率很小的块,回收池的大小要小于分配给该池的各个段的总大小,这意味着读入该池的块经常需要在缓冲区内执行过期处理。
   可通过指定DB_RECYCLE_CACHE_SIZE 参数的值来配置
nK buffer pool
此池始终存在。它相当于没有保留池和回收池的实例的缓冲区高速缓存,可通过DB_CACHE_SIZE 参数进行配置。
注:保留池或回收池中的内存不是默认缓冲池的子集 CREATE INDEX cust_idx …
STORAGE (BUFFER _POOL KEEP); ALTER TABLE oe.customers
STORAGE (BUFFER_POOL RECYCLE); ALTER INDEX oe.cust_lname_ix
STORAGE (BUFFER _POOL KEEP); BUFFER_POOL 子句用于定义对象的默认缓冲池。它是STORAGE子句的一部分,对CREATE 和ALTER表、集群和索引语句有效。未明确设置缓冲池的对象中的块将进入默认缓冲池。
语法为:BUFFER_POOL [KEEP | RECYCLE | DEFAULT] 。

2.PGA

  共享连接模式和专用连接模式,PGA的管理方式不同。大多情况下,采用专用连接模式

专用SQL区
发出SQL 语句的每个会话都有一个专用SQL 区。
提交同一SQL 语句的每个用户也都有其自己的专用SQL 区,该专用SQL 区使用一个共享SQL 区。这样,许多专用SQL 区可与同一个共享SQL 区关联。
专用SQL 区的位置取决于为会话建立的连接类型。
如果会话是通过专用服务器连接的,则专用SQL 区位于该服务器进程的PGA 中。
如果会话是通过共享服务器连接的,则部分专用SQL 区将保留在SGA中 游标和SQL区
Oracle Pro*C 程序或Oracle 调用接口(OCI)程序的应用程序开发人员可以显式打开特定专用SQL 区的游标或句柄,并在该程序的整个执行过程中将它们用作命名资源。
数据库为某些SQL 语句隐式发出的递归游标也使用共享SQL 区。 工作区
对于复杂查询(例如,决策支持查询),会将大部分PGA 供内存密集型运算符分配的工作区专用。
例如:排序的运算符(ORDER BY 、GROUP BY),散列联接,位图合并,位图创建. 会话内存
会话内存是用于存放会话的变量(登录信息)以及与会话相关的其它信息的内存。
对于共享服务器,会话内存是共享的,而不是专用的。

Oracle内存组件理论篇一的更多相关文章

  1. Oracle内存管理理论篇二

    目标 了解oracle内存管理方式 掌握ASMM管理方式 掌握AMM管理方式 监控内存使用 学习一个知识点时,最好先了解其历史.ORACLE近期的版本都对内存管理做了简化,从9i通过PGA_AGGRE ...

  2. Oracle知识梳理(一)理论篇:基本概念和术语整理

    理论篇:基本概念和术语整理 一.关系数据库           关系数据库是目前应用最为广泛的数据库系统,它采用关系数据模型作为数据的组织方式,关系数据模型由关系的数据结构,关系的操作集合和关系的完整 ...

  3. 这篇关于Oracle内存管理方式的介绍太棒了!我必须要转发,很全面。哈哈~

    "Oracle内存管理可分为两大类,自动内存管理和手动内存管理.其中手动内存管理又可分为自动共享内存管理,手动共享内存管理,自动PGA内存管理以及手动PGA内存管理.本文会简单的介绍不同的内 ...

  4. QoS专题-第1期-QoS理论篇

    QoS理论篇 1      QoS的产生 随着网络技术的飞速发展,IP网络已经从当初的单一数据网络向集成数据.语音.视频.游戏的多业务网络转变.网络中所承载的数据呈几何级倍数增长,而且这些业务对网络带 ...

  5. Oracle内存全面分析

    Oracle内存全面分析 Oracle的内存配置与oracle性能息息相关.而且关于内存的错误(如4030.4031错误)都是十分令人头疼的问题.可以说,关于内存的配置,是最影响Oracle性能的配置 ...

  6. 【转】oracle内存分配和调优总结

    转自 http://blog.itpub.net/12272958/viewspace-696834/ 一直都想总结一下oracle内存调整方面的知识,最近正好优化一个数据库内存参数,查找一些资料并且 ...

  7. Oracle内存参数配置及版本问题

    Oracle的内存配置与Oracle性能息息相关.从总体上讲,可以分为两大块:共享部分(主要是SGA)和进程独享部分(主要是PGA).在 32 位操作系统下 的Oracle版本,不时有项目反馈关于内存 ...

  8. OcciWrapper使用指南(高性能Oracle访问组件)

    occiwrapper使用指南 occiwrapper是一个开源的.跨平台的Oracle访问组件, 方便C++开发者们灵活地操作oracle数据库.为了方便使用,组件中的接口形式参考的POCO库的使用 ...

  9. Lucene核心--构建Lucene搜索(上篇,理论篇)

    2.1构建Lucene搜索 2.1.1 Lucene内容模型 一个文档(document)就是Lucene建立索引和搜索的原子单元,它由一个或者多个字段(field)组成,字段才是Lucene的真实内 ...

随机推荐

  1. [转]SVN:This client is too old to work with working copy 的解决方案

    前一段时间,我在Eclipse碰到一个SVN错误,出现的原因是我的Eclipse的SVN插件是1.6,服务器的SVN版本是1.5.4,然后我在工程目录下做了一次提交操作(不是Eclipse里),到最后 ...

  2. ios菜鸟总结2

    这个星期学起oc来可能是最纠结的.话不多说先补充一下上一个星期的快捷键吧.工程导航器:Command+1    显示/隐藏导航器面板:Command+0 .显示/隐藏实用工具面板:Command+Op ...

  3. java jdbc连接mysql

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

  4. linux_iptables 详解

    iptables工具__过滤包—命令(-A.-I.-D.-R.-L等).参数(-p.-s.-d.--sport.--dport.-i.-o等).动作-j (ACCEPT.DROP.REJECT.RED ...

  5. java执行程序

    执行jar java -jar x.jar 执行jar里边指定class java -cp x.jar x.x.x

  6. Chrome隐身模式有什么用

    最近发布的Chrome浏览器,小编发现有一个个“隐身窗口”功能,那么这是什么功能呢?原来这是Chrome隐身模式!那么这个隐身模式有什么功能呢? Chrome隐身模式有什么用? 从官方的介绍来看,“隐 ...

  7. BI跟报表一样吗?

    一.报表≠BI很多的人认为,报表就是BI.实际上,报表只是BI的一部分,虽然BI应用的结果通常需要通过报表来展示,但是,BI绝对不仅仅是报表.其实,大家对这些概念的理解,如同15年前的ERP一样.19 ...

  8. hdu-5597 GTW likes function(欧拉函数+找规律)

    题目链接: GTW likes function Time Limit: 4000/2000 MS (Java/Others)     Memory Limit: 131072/131072 K (J ...

  9. 51nod 平均数(二分+树状数组)

    题目链接: 平均数 基准时间限制:4 秒 空间限制:131072 KB 分值: 80 LYK有一个长度为n的序列a. 他最近在研究平均数. 他甚至想知道所有区间的平均数,但是区间数目实在太多了. 为了 ...

  10. 初识 Asp.Net内置对象之Session对象

    Session对象 Session对象用于存储在多个页面调用之间特定用户的信息.Session对象只针对单一网站使用者,不同的客户端无法相互访问.Session对象中止联机机器离现时,,也就是当网站使 ...