Oracle 概念2 数据块 区段与段.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle 概念2 数据块 区段与段

Oracle 概念2 数据块 、区段和段 Oracle概念2数据块、区段和段2010-07-1510:222、数据块、区段和段 这一章描述了Oracle数据库服务器中逻辑存储结构的本质和相互关系。 本章包含下列内容 u介绍数据段、区段和段 u数据块概述 u区段概述 u段概述 介绍数据块、区段和段 Oracle为数据库中的所有数据分配逻辑数据库空间。数据库空间的分配单位是数据块、区段和段。图2-1显示了这些数据结构之间的关系: 图2-1段、区段、数据块的关系 Oracle保存数据的最小颗粒是数据块(也叫逻辑块、Oracle块或页)。一个数据块对应于磁盘上特定数量的物理数据库空间。 逻辑数据库空间的下一个层次是区段。一个区段是特定数目的连续数据块,用来保存特定类型的信息。 区段之上的逻辑数据库存储层次叫段。段是一系列的区段,每个区段都分配为一个特定的数据结构,段中所有的区段都保存在同一个表空间上。例如,每个表的数据都保存在它自己的数据段中,但每个索引数据都保存在索引段中。如果表或者索引被分区,每个分区都保存在它自己的段中。 Oracle为段分配空间的单位是区段。当一个段中现有的区段充满时,Oracle为这个段分配另一个区段。因为区段是按需分配的,段中的区段可能在磁盘上并不连续。 一个段或它的所有区段都保存在一个表空间上。在一个表空间内,一个段可以包含来自多个数据文件的区段;就是说,段可以跨数据文件。虽然如此,每个区段只能来自于一个数据文件。 虽然你可以分配额外的区段,但它的数据块是单独分配的。如果你为一个特定的实例分配一个区段,块会立刻分配到可用列表中。如果一个特定的实例没有分配区段,当高水位线移动时,会自动分配数据块。高水位线是段中可用空间和不可用空间的界线。 数据块概述 Oracle管理数据库的数据文件的存储空间的分配单位叫数据块。数据块是数据库使用的最小数据单位。相比之下,在物理的操作系统层次上,所有数据都保存为字节。每个操作系统都有一个块大小。Oracle访问数据是按Oracle数据块的倍数,不是操作系统块的倍数。 标准块大小由初始化参数DB_BLOCK_SIZE大小决定。另外,你可以制定不多于5个非标准块大小。数据块大小应该是操作系统块大小的倍数,这样可以最大限度的减少非必要的I/O。Oracle数据块是Oracle能够使用或者分配的最小存储空间。 数据块格式 Oracle数据块格式和数据块是否包含表、索引和聚集数据无关。图2-2描述了数据块的格式。 图2-2数据块格式 头部(常量和变量)--Header(CommonandVariable) 头部包含通用的块信息,比如块地址和段类型(比如数据或者索引) 表目录 数据块的这部分包含在本块有数据的表的信息 行目录 数据块的这部分包含块中实际行的信息(包括行数据区域的每个行的地址) 在数据块的首部分配了行目录空间之后,当行被删除时这个空间不会被回收。因此一个曾经包含50行的空块还在首部的行目录分配了100字节。Oracle只有在新行插入这个块时才会重用这部分区域。 首部 数据块头部、表目录和行目录合起来称作首部。块首部某些部分是固定大小的;整个块首部大小是个变量。平均来说,块首部的固定和变化部分总和在84到107字节之间。 行数据 数据块的这部分包含表或者索引数据。行可以跨块。 空闲空间FreeSpace 空闲空间是为插入新行和需要更多空间的更新分配的空间(例如,当一个空值被更新为非空值)。 在表、聚集或者索引的段空间分配的数据块中,空闲空间可以保存事务入口(transactionentries)。每个访问块中一个或者多个行的INSERT、UPDATE、DELETE、SELECT.FORUPDATE语句都需要事务入口。事务入口需要的空间依赖于操作系统。虽然如此,在大多数操作系统中事务入口需要的空间大约是23字节。 空闲空间管理 空闲空间可以自动管理也可以手动管理。 空闲空间可以在数据段内自动管理。段内空闲、已用空间都使用位图跟踪,而不使用空闲列表。自动段空间管理提供了下列优势: u使用容易 u更好的利用空间,尤其是针对行大小不一致的对象。 u在并发访问时提供更好的性能 u在多实例情况下,更好的性能和空间利用率 当你创建本地管理的表空间时指定了自动段空间管理。表空间上创建的所有段都使用这种指定。 数据块的空闲空间的可用性和优化 两种类型的语句可以提高一个或多个数据块的可用空间:DELETE语句和将现有值更新为更小的UPDATE语句。随后的INSERT语句只有在下列情况下才能使用这些类型的语句释放的空间: u如果INSERT语句在相同的事务中且在空闲空间的语句之后,那么INSERT语句可以使用这个空间。 u如果INSERT语句和空闲空间的语句(可能是另一个用户运行的)在不同的事

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档