设为首页 加入收藏

TOP

oracle内存结构详解(二)
2014-11-24 07:39:02 来源: 作者: 【 】 浏览:1
Tags:oracle 内存 结构 详解
动将它们清除为止。从磁盘读取的块将被放置在为该段新指定的缓冲区池中。

由于多个缓冲区池被分配给某一个段,所以有多个段的对象可以将块放置在多个缓冲区池中。例如,按索引组织的表在索引段和溢出段上可以有多个不同的池。

2.共享池 shared pool

\

大小通过 SHARED_POOL_SIZE 指定。
库高速缓存包含语句文本、已进行语法分析的代码和执行计划。
数据字典高速缓存包含数据字典表中各表、列和权限的定义。
用户全局区 (UGA) 包含会话信息(如果使用 Oracle 共享服务器)。

库高速缓存:库高速缓存包含共享 SQL 区和 PL/SQL 区 - 经过完全语法分析或编译的 PL/SQL 块和 SQL 语句的表示法。PL/SQL 块包括:

过程和函数

程序包

触发器

匿名
PL/SQL 块

数据字典高速缓存:数据字典高速缓存将字典对象的定义存放在内存中。

结果高速缓存:结果高速缓存包含 SQL 查询结果高速缓存和 PL/SQL 函数结果高速缓存。此高速缓存用于存储 SQL 查询或 PL/SQL 函数的结果,以加快其将来的执行速度。

用户全局区:UGA 包含 Oracle 共享服务器的会话信息。使用共享服务器会话时,如果尚未配置大型池,则 UGA 位于共享池中。

3.大型池large pool

\

可配置为 SGA 中一个单独的内存区

大小由 LARGE_POOL_SIZE 参数指定

用于在内存中为以下各项存储数据:
--UGA

--备份和还原操作

--并行查询消息传送

大型池必须显式配置。大型池的内存不是来自共享池,而是直接来自 SGA,这就增大了 Oracle 服务器在实例启动时需要的共享内存量。

大型池用于为以下各项分配大量会话内存:

--I/O 服务器进程

--备份和还原操作

--Oracle 共享服务器进程和 Oracle XA 接口(事务处理与多个数据库交互时使用)

由于从大型池为 Oracle 共享服务器分配会话内存,因此共享池中由于频繁分配和取消分配大对象而产生的碎片也就很少。将大对象从共享池中分离出来,可增加共享池内存的使用效率,这意味着,它可以将更多内存用于处理新的请求,以及在需要时用于保留现有数据。

4.Java pool

可配置为 SGA 中一个单独的内存区

大小由 JAVA_POOL_SIZE 参数指定

用于将 JVM 中特定于会话的所有 Java 代码和数据存储在内存中

5.重做日志缓冲区 redo buffer cache

\

Oracle 服务器进程将重做条目从用户的内存空间复制到每个 DML 或 DDL 语句的重做日志缓冲区。重做条目包含重建或重做 DML 和 DDL 操作对数据库的更改所必需的信息。它们用于数据库恢复,需要占用缓冲区中的连续空间。


重做日志缓冲区是一个循环缓冲区;服务器进程可以用新条目覆盖重做日志缓冲区中已写入磁盘的条目。LGWR 进程的写速度通常都很快,足以确保缓冲区中始终有存储新条目的空间。LGWR 进程将重做日志缓冲区写入磁盘上的活动联机重做日志文件(或活动组成员)中。LGWR 进程将 LGWR 上次写入磁盘以来进入缓冲区的所有重做条目复制到磁盘。

什么导致 LGWR 执行写操作?

用户进程提交事务处理时

每隔三秒,或每当重做日志缓冲区占满三分之一时

DBWn 进程将修改的缓冲区写入磁盘时(如果相应的重做日志数据尚未写入磁盘)

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇 Oracle MapViewer11g安装与部署 下一篇解决ORA-01536:超出表空间“user..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·HyperText Transfer (2025-12-26 07:20:48)
·半小时搞懂 HTTP、HT (2025-12-26 07:20:42)
·CPython是什么?PyPy (2025-12-26 06:50:09)
·Python|如何安装seab (2025-12-26 06:50:06)
·python要学习数据分 (2025-12-26 06:50:03)