- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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进程所使用,所以程序全局区也被称作进程全局区(
您可能关注的文档
最近下载
- 人教部编版道德与法治七下3.2《 青春有格》说课课件.ppt
- 2023年11月广东省2024年度选调2441名优秀大学毕业生笔试历年典型考题及考点剖析附答案详解.docx
- 7、劳动教育教案:小麦种植 辛勤耕耘迎丰收(二).docx
- 饲料加工厂饲料企业安全风险分级管控和隐患排查治理双体系方案全套资料(2019-2020新标准完整版).pdf
- Starter Unit 1 Section A How do you greet people优质课件-人教版七年级上册.pptx VIP
- 幼儿园开学安全第一课.pptx VIP
- 百度搜索(竞价)平台操作手册.pdf
- 北京中考英语词汇表(1600词汇).pdf
- GB50251-2015 输气管道工程设计规范.docx
- 2023-2024新人教版小学数学4四年级上册(全册)完整教案设计.pdf
文档评论(0)