文档详情

计算机专业教材-第21章管理数据库存储.pdf

发布:2018-05-27约3.5万字共28页下载文档
文本预览下载声明
下载 第五部分 管理Oracle数据库 第21章 管理数据库存储 本章要点: 管理数据库对象 理解数据库碎片 管理回滚段 鉴别存储问题 管理增长的数据库 故障检查 方案:监控数据库增长 21.1 管理数据库对象 一个O r a c l e数据库有许多消耗磁盘和系统资源的组件。正如你所看到的,每个资源有唯一 的存储特性并需要独特的处理和维护。在下面的部分中,你将看到数据库段及它们的唯一存 储关系。我要讨论段本身,例如表、簇、索引、回滚段和临时段,以及 O r a c l e数据库存储它们 时所使用的内部方法。 21.1.1 管理Oracle块 O r a c l e服务器可寻址的最小存储单元是 O r a c l e块。所有的数据库段都由 O r a c l e块组成,无 论段是一个表、索引、簇或者其他对象,块结构是相同的。设计一个性能最优的数据库要从 对O r a c l e块适当的配置和管理开始。 每个O r a c l e块都是由下面三部分组成的: ■ 块头。 ■ 数据存储区。 ■ 自由空间区。 块头包含有关块的信息─什么类型的段数据存储在块中,什么段在块中有数据,块地 址以及指向存储在其中的实际行的指针。块头由一个固定部分和一个可变部分组成,在块中 块头通常使用8 5到1 0 0字节。 在O r a c l e块中,管理数据存储区和自由空间区域是彼此直接相关的。数据区域是块中实际 存储行的地方。保留的自由空间区是一个区域,被定义为总的可用空间的百分数,被保留用 于存储有关在块中的行将来更新的信息。管理数据和保留的块区域是 O r a c l e块管理所主要关注 232计计第五部分 管理Oracle数据库 下载 的,这将在本章的后面讨论。 21.1.2 理解PCTFREE与PCTUSED P C T F R E E 和P C T U S E D 是应用于段的两个存储参数,它们经常被误解,但是概念实际上 非常简单。当O r a c l e 向数据库中写信息时,它必须首先在一个段的分配区中找到一个或更多块 来存储信息。O r a c l e保留了块的一个列表,这些块对每个段来说都是自由的(这也被称为自由 表)。O r a c l e使用P C T F R E E和P C T U S E D参数的组合确定块何时有何时没有足够的空间接受新 信息。 提示 在许多情况中,Oracle对PCTFREE和PCTUSED参数的缺省值设置工作得非常好。 因此,一直注意并牢记缺省设置的含义就非常重要,特别是要定期地注意行转移。 如果在块中自由空间的百分数比 P C T F R E E参数大得多,它就要被添加到段的自由表中以 便它可以用来存储新信息(例如,在表中的新行或者索引段的新索引节点)。当自由空间的 百分数低于P C T F R E E 时,块就被认为是“满的”,O r a c l e就把它从段的自由表中移出来。当 块中使用空间的百分数低于 P C T U S E D 时,O r a c l e就把该块加到段的自由表中,这样它就可以 再次被用来存储新信息。这种方法允许 O r a c l e保持足够的额外空间用于行增长,而不需要跨 过超过一个块的空间。保持行被限制在一个单独的块中有助于使你的数据库以最高性能运 行。 P C T F R E E 和P C T U S E D 的值永远都不能等于 1 0 0 % 。如果一个段被这样配置,块很可 能将被连续地从自由表中取出,并且在每个数据子处理中又被放置到自由表中。由数据 库引擎处理引起的系统开销可以通过在 P C T F R E E 和P C T U S E D 之间留至少 2 0 % 的裕量而 很容易地得到解决。 Oracle 为P C T F R E E 预置了 1 0 ,为PCTUSED 预置了 4 0 说明这个裕 量。 P C T F R E E和P C T U S E D在数据库段的存储子句中被指定。你可以用d b a _ t a b l e s 、d b a _ c l u s t e r s 或者d b a _ i n d e x e s数据
显示全部
相似文档