- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
区(extent) 区(Extent)是由物理上连续存放的块构成,区是Oracle存储分配的最小单位,由一个或多个块 组成。 当在数据库中创建带有实际存储结构的方案对象(如表、索引)时,Oracle将为该方案对象分配若干个区,以便组成一个对应的段来为该方案对象提供初始的存储空间。当段中已分配的区都写满后,Oracle就为该段分配一个新的区,以便容纳更多的数据。 分配的第一个区称初始区,以后分配的区称增量区。 数据库块(Block) 数据库块(Database Block)是数据库使用的I/O最小单元,又称逻辑块或ORACLE块。 一个数据库块对应一个或多个物理操作系统块,块的大小由参数DB_BLOCK_SIZE确定。 数据块的大小是操作系统块大小的整数倍. 以Win2K为例,操作系统块(OS block)的大小为4kb,所以Oracle Block的大小可以是4kb,8kb,16kb等等。 存储结构总结 物理存储结构与逻辑存储结构之间的关系 从物理上看,数据库由控制文件、数据文件、重做日志文件等操作系统文件组成; 从逻辑上来看,数据库是由系统表空间、用户表空间等组成。 表空间是最大的逻辑单位,块是最小的逻辑单位。 逻辑存储结构中的块最后对应到操作系统中的块. 内存结构 Oracle内存结构由两个部分组成: 系统全局区(SGA): 在启动例程时分配, 是Oracle例程的基础组件。 程序全局区(PGA): 当启动服务器进程时分配。 系统全局区(SGA) SGA是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。 每个例程都只有一个SGA. 它是不同用户进程与服务进程进行通信的中心,数据库的各种操作主要在SGA中进行,所以称其为系统全局区. 创建例程时,Oracle为SGA分配内存; 终止例程时,释放SGA所占用的内存. 系统全局区 SGA由以下内存结构组成: 共享池 数据高速缓存 重做日志缓冲区 在SGA内可以配置以下内存结构: 大缓冲池 Java池 SGA 重做日志缓冲区 共享池 数据字典高速缓存 库高速缓存 数据高速缓存 Java 池 大缓冲池 SGA 共享池 用于存储: 最近执行的SQL语句 最近使用的数据定义 由两个关键的内存结构组成: 库高速缓存 数据字典高速缓存 尺寸由参数SHARED_POOL_SIZE控制 共享池 数据字典 高速缓存 库高速缓存 ALTER SYSTEM SET SHARED_POOL_SIZE = 64M; 库高速缓存 存储最近解析使用的SQL和PL/SQL语句信息 Oracle 在执行用户进程提交的各种SQL语句、PL/SQL前要对其进行解析(包括语法解析、对象确认、权限判断、操作优化等)并生成执行计划,占用一定的系统资源。 由两个部分组成: 共享SQL区 共享PL/SQL区 数据字典高速缓存 最近使用的对象定义集合 包括数据库文件、表、索引、列、用户、权限和其它数据库对象的信息 在解析阶段, 服务器进程查看数据字典信息以解析对象名 数据字典缓存信息到内存,以提高查询和DML响应时间 尺寸由共享池尺寸确定 数据高速缓存 存储从数据文件检索的数据块副本 通过LRU算法管理 DB_BLOCK_SIZE确定了缓冲区数据块大小 数据高速缓存 数据缓冲区 数据文件 初次访问数据时,Oracle将读取磁盘上的数据文件,将数据放入数据高速缓存,再处理数据; 如果数据已经位于数据高速缓存中时,Oracle直接操作数据。 数据高速缓存的缓存块分为三类: 脏缓存块: 存放已经被修改过的缓存块. 当SQL修改某个缓存块中的数据,则这个缓存块被标记为脏缓存块 空闲缓存块: 等待写入数据的空闲缓存块. 命中缓存块: 最近正在被访问的缓存块. 管理缓存块的列表 Oracle通过2个列表来管理上述缓存块: 脏列表(DIRTY) 包括被修改过但尚未写到数据文件的缓冲块。 LRU(Least Recently Used)列表 包括空闲缓冲块、命中缓存块,以及还没有移到脏列表的缓冲块。 数据高速缓存工作原理 读数据入数据高速缓存之前,先在LRU中搜索空闲缓存块;在搜索过程中如果发现脏缓存块,则将其移入DIRTY; 找到足够的空闲块,将所有数据读入; 3,如果空闲块不足,则暂停搜索,Oralce立刻启动D
文档评论(0)