Oracle逻辑结构

发表于:2012-7-27 10:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:l106439814    来源:51Testing软件测试网采编

  Oracle的逻辑结构是一种层次结构。主要由:表空间、段、区和数据块等概念组成。逻辑结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑结构。数据库存储层次结构及其构成关系,结构对象也从数据块到表空间形成了不同层次的粒度关系,如图2-3和图2-4所示。

图2-3  Oracle 10g数据库层次结构图

图2-4 段、区和数据块之间的关系

  1、数据块

  Oracle数据块(Data Block)是一组连续的操作系统块。分配数据库块大小是在Oracle数据库创建时设置的,数据块是Oracle读写的基本单位。数据块的大小一般是操作系统块大小的整数倍,这样可以避免不必要的系统I/O操作。从Oracle9i开始,在同一数据库中不同表空间的数据块大小可以不同。数据块是Oracle最基本的存储单位,而表空间、段、区间则是逻辑组织的构成成员。在数据库缓冲区中的每一个块都是一个数据块,一个数据块不能跨越多个文件。

  数据块的结构主要包括:

  标题:包括一般的块信息,如块地址,段类型等。

  表目录:包括有关表在该数据块中的行信息。

  行目录:包括有关在该数据块中行地址等信息。

  行数据:包括表或索引数据。一行可跨越多个数据块。

  空闲空间:分配空闲空间是用于插入新的行和需要额外空间的行更新。通过空间管理参数pctfree可控制空闲空间的使用。空闲空间的管理既可以是自动的也可以是手动的。

  在数据操作中,有两种语句可以增加数据库块的空闲空间:一个是Delete删除语句,另一个是Update更新现有行。释放的空闲空间可用于insert语句,如果insert语句是与产生空闲空间的语句在同一个事务之中,并在其后执行,则insert语句可直接使用生成的空闲空间。如果insert语句是在一个与产生空闲空间的语句相分离的事务中,则insert语句可在其他事务提交后,并在其需要空间时,使用之前产生的空闲空间。

  数据块中释放的空间可能是连续的,也可能不连续。Oracle只有在出现下列情况时,才会合并数据块的空闲空间:当insert或update语句要使用一个数据块,该数据块的空闲空间足以存储新的一行,而且空闲空间均是碎片,数据块中连续空间无法插入一行的时候。除此而外,Oracle在系统性能下降时也需要压缩数据块的空间。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号