oracle内存详解概要1.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
oracle内存详解概要1

与 Oracle 实例关联的基本内存结构包括:系统全局区 (SGA):由所有服务器和后台进程共享。SGA 中存储的数据示例包括高速缓存的数据块和共享 SQL 区域。程序全局区 (PGA):各个服务器进程和后台进程专用,每个进程都有一个 PGA。SGA 是共享内存区,包含实例的数据和控制信息,由以下各项组成:数据库缓冲区高速缓存:用于缓存从磁盘检索到的数据块重做日志缓冲区:用于缓存重做信息,直到其可以写入磁盘为止共享池:用于缓存可在用户间共享的各种结构大型池:用于缓冲大型 I/O 请求的可选区域,以便支持并行查询、共享服务器、Oracle XA 以及某些类型的备份操作Java 池:用于存放 Java 虚拟机 (JVM) 中特定于会话的 Java 代码和数据流池:由 Oracle Streams 使用保留缓冲区高速缓存:用于存放会尽可能长地保留在缓冲区高速缓存中的数据循环缓冲区高速缓存:用于存放缓冲区高速缓存中很快过期的数据nK 块大小缓冲区高速缓存:用于缓存大小与默认数据库块大小不同的数据块,用来支持可传输的表空间数据库缓冲区高速缓存、共享池、大型池、流池和 Java 池的大小可以按照当前需求自动调整。而且,这些内存缓冲区以及保留缓冲区高速缓存、循环缓冲区高速缓存和 nK 块大小缓冲区高速缓存可以在不关闭实例的情况下进行更改。Oracle 数据库会提供预警和指导,以标识内存大小问题,从而帮助确定相应的内存参数值。程序全局区 (PGA) 是一个内存区,其中包含每个服务器进程的数据及控制信息。服务器进程是处理客户机请求的进程。每个服务器进程都有在服务器进程启动时创建的自己专用的 PGA。只有该服务器进程才能访问。所用 PGA 内存量和 PGA 的内容取决于实例是否是在共享服务器模式下配置的。通常,PGA 包含下列内容:专用 SQL 区:包含绑定信息和运行时内存结构等数据。发出 SQL 语句的每个会话都有一个专用 SQL 区。会话内存:此处分配的内存用于存放会话变量以及与该会话相关的其它信息。1.缓冲区高速缓存 data buffer cache通过指定 DB_CACHE_SIZE 参数的值,可以配置缓冲区高速缓存。缓冲区高速缓存可存放数据文件中块大小为 DB_BLOCK_SIZE 的数据块的副本。缓冲区高速缓存是 SGA 的一部分;因此所有用户都可以共享这些块。服务器进程将数据文件中的数据读入缓冲区高速缓存。为了提高性能,服务器进程有时在一个读操作中会读取多个块。然后由 DBWn 进程将数据从缓冲区高速缓存写入数据文件。为提高性能,DBWn 在一个写操作中会写入多个块。在任何给定时间,缓冲区高速缓存都可能会存放一个数据库块的多个副本。虽然该块只存在一个当前副本,但为了满足查询需要,服务器进程可能需要根据过去的映像信息构造读一致性副本。这称为读一致性 (CR) 块。最近最少使用 (LRU) 列表可反映缓冲区的使用情况。缓冲区将依据其被引用时间的远近和引用频率进行排序。因此,最经常使用且最近使用过的缓冲区将列在最近最常使用一端。传入的块先被复制到最近最少使用一端的缓冲区中,然后该缓冲区将被指定到列表中央,作为起点。从这个起点开始,缓冲区根据使用情况在列表中上下移动。缓冲区高速缓存中的缓冲区可以处于以下四种状态之一:已连接:当前正将该块读入高速缓存或正在写入该块。其它会话正等待访问该块。干净的:该缓冲区目前未连接,如果其当前内容(数据块)将不再被引用,则可以立即执行过期处理。这些内容与磁盘保持同步,或者缓冲区包含块的读一致性快照。空闲/未使用:缓冲区因实例刚启动而处于空白状态。此状态与“干净的”状态非常相似,不同之处在于缓冲区未曾使用过。灰:缓冲区不再处于连接状态,但内容(数据块)已更改,因此必须先通过 DBWn 将内容刷新到磁盘,然后才能执行过期处理。服务器进程使用缓冲区高速缓存中的缓冲区;而 DBWn 进程通过将更改的缓冲区写回数据文件,使高速缓存中的缓冲区变为可用状态。检查点队列中列出将要写出到磁盘的缓冲区。Oracle 数据库支持同一数据库中有多种块大小。标准块大小用于 SYSTEM 表空间。标准块大小可以通过设置初始化参数 DB_BLOCK_SIZE 来指定。其有效值介于 2 KB 到 32 KB 之间,默认值为 8 KB。非标准块大小的缓冲区的高速缓存大小通过以下参数指定:DB_2K_CACHE_SIZEDB_4K_CACHE_SIZEDB_8K_CACHE_SIZEDB_16K_CACHE_SIZEDB_32K_CACHE_SIZEDB_nK_CACHE_SIZE 参数不能用于调整标准块大小的高速缓存的大小。如果 DB_BLOCK_SIZE 的值为 nK,则设置 DB_nK_CACHE_SIZE 是非法的。标准块大小的高速缓

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档