第6章 Oracle 内存结构 大型数据库技术 oracle 10g教学课件.ppt

第6章 Oracle 内存结构 大型数据库技术 oracle 10g教学课件.ppt

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

第6章 Oracle 内存结构 Oracle使用内存存储程序代码、连接会话信息、缓存数据等。与Oracle相关的内存结构包括: 系统全局区(SGA,System Global Area) 程序全局区(PGA,Program Global Area) 本章参考文献 实验 作业 6.1 SGA 系统全局区(SGA)是Oracle为实例分配的一个共享内存区域,它所包含的数据和控制信息为一个实例下的所有进程所共享,所以SGA又被称作共享全局区(Shared Global Area)。每个实例都有其自己的SGA。当实例启动(从关闭状态启动到nomount状态)时,Oracle分配SGA;实例关闭时,释放SGA。 SGA的主要数据结构包括数据库缓冲区缓存、重做日志缓冲区、共享池、Java池、大型池等。 固定SGA(fixed SGA) 存储后台进程需要访问的数据库和实例状态的一般信息,其中不包含任何用户数据。 可以把固定SGA看作SGA中的“自启”区,Oracle内部使用它来查找SGA的其他区。 数据库缓冲区缓存 数据库缓冲区缓存用于缓存用户最近使用过的数据。当用户检索时,数据库内的数据先读取到该区域,然后再经过处理后返回给用户。在修改时,被修改的数据先被存储在数据库缓冲区内,而不是马上写入磁盘(这样的数据块被称作脏块)。只有当它到达一定量或满足一定条件后,Oracle才将它们写入磁盘。这样可以减少磁盘读写次数,提高系统的存取效率,改善系统性能。 数据库缓冲区缓存 标准数据块缓冲区缓存分为以下三种: 保持池:将模式对象的数据块保持在内存中,其大小有db_keep_cache_size参数指定; 循环池:不再需要时,释放数据块所占用的内存,其大小有db_recycle_cache_size参数指定; 默认池:缓存未指定缓冲区池(或指定为default池)的模式对象的数据块,其大小有db_cache_size参数指定。 数据库缓冲区缓存 Oracle数据库中除标准数据块之外,还允许使用其他5种数据块。非标准数据块的缓冲区缓存的大小由db_n_cache_size参数设置,其中n可等于2k、4k、8k、16k、32k,但不能等于标准数据块的大小。 重做日志缓冲区 重做日志缓冲区用于缓存数据库的修改日志,这些修改日志称作重做项。重做项记录对数据库数据块所做的所有修改,它主要用于数据库恢复。 重做日志缓冲区是一个圆形缓冲区,其大小由LOG_BUFFER参数确定。重做项按顺序占用该缓冲区内一段连续的空间。重做日志缓冲区中的内容最终由LGWR进程写入到磁盘上的重做日志文件中 。 重做日志缓冲区 LGWR进程在以下条件下刷新重做日志缓冲区: 每三秒钟; 提交事务时; 重做日志缓冲区1/3满时; DBWn进程启动时。 共享池 共享池用于缓存最近使用过的数据定义或最近执行过的SQL语句、PL/SQL单元。共享池的大小由初始化参数SHARED_POOL_SIZE指定。 共享池主要由以下两部分组成: 库缓存?:用于存储和共享在数据库上执行过的SQL语句和PL/SQL程序单元,如函数、包、触发器等; 数据字典缓存:缓存用户账户数据、列定义、表和索引描述以及权限等数据定义信息,这些信息都存储在数据字典内,缓存它们可以加快SQL语句的分析和执行速度。 共享池 Oracle长期运行后,共享池可能出现碎片,这时可以用以下语句清除共享池内的全部数据: ALTER SYSTEM FLUSH SHARED_POOL;? SGA内存管理方式 SGA内存的管理可以采用以下两种方式: 手工管理:由管理员设置SGA内部各个组件的大小; 自动管理:管理员设置SGA_TARGET参数后,由Oracle自动分配db_cache_size、shared_pool_size、large_pool_size、java_pool_size、streams__pool_size;其他数据库缓冲区缓存、日志缓冲区等仍需由管理员手工分配。 SGA内存管理方式 无论是采用手工管理还是自动管理方式,所分配的各个SGA组件的内存之和不得大于SGA_MAX_SIZE。 为了避免操作系统把SGA内存分配到虚拟内存中,可以把初始化参数lock_sga设置为true,要求在物理内存中为SGA分配内存。 与SGA相关的几个性能视图 6.2. PGA 每个服务器进程启动时,Oracle为它创建一个供其专用的PGA区域。PGA中包含与指定服务器进程相关的栈空间和会话信息,栈空间内存储会话变量和数组等。 与SGA被一个实例下的所有进程共享不同,程序全局区(PGA)只能被单个Oracle进程所使用,所以程序全局区也被称作进程全局区(

文档评论(0)

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

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

1亿VIP精品文档

相关文档