- 1
- 0
- 约1.14万字
- 约 10页
- 2018-02-05 发布于浙江
- 举报
下载
第10章 分 区
本章要点:
什么是分区
Oracle 8分区:一些例子
分区索引
维护操作
并行能力
附加的考虑
分区(p a r t i t i o n i n g )可能是Oracle 8 RDBMS 中最重要的一个新特性。尽管它的有些形式
已经存在于Oracle 7 中,但是它在Oracle 8得到增强,并更完全地并入 R D B M S 引擎。分区这个
术语被“重载”。换言之,对于数据库理论和其他厂商(例如 I n f o r m i x ),它有很多层意思。但
是,当然这里所处理的是特定的 O r a c l e分区表和索引能力。
10.1 什么是分区
在Oracle 7 中首次出现了用分区视图进行分区的能力。分区视图帮助按照用户定义的业务
规则、条件或规范,物理地分开磁盘上的数据存储。从本质上讲,表和索引是能够根据给定
的值被分离开的。例如,一个州的列包括两个字符的州名缩写,一个表能够按组成国家不同
地区的州(例如 East Coast )存储在分离的磁盘上。
这是通过使用检查约束来完成的,通过互斥来执行。也就是说,对给定的列的所有不同
子集的值,当被分配时,不能重叠。如果它们会重叠,你将可能在多个磁盘中存储同一行记
录,但是 O r a c l e 如何知道使用哪一个记录呢?另外,手工建立相互排斥的分区,你应将设置
p a r t i t i o n _ v i e w _ e n a b l e d初始化参数为真。这将告诉优化器去研究对所有表被分区的可能性,以
使W H E R E语句可能需要访问唯一的或少量的几个分区,而不是访问组成整个表的全部分区。
对经历全表扫描的大表,这种有效性更为显著,但在其他环境中也能意识到这种有效性。例
如,用大的索引扫描或中等尺寸的表或索引访问能够提高分区的有效性。优化器操作如果知
道分区边界,就能够跳过分区,称为分区消除。清单 1 0 - 1显示了如何在Oracle 7 中建立分区视
图:
清单10-1 在Oracle 7 中创建分区视图
98计计第三部分计Oracle 8.x RDBMS
下载
Oracle 7 分区视图的能力被加强和合并到 Oracle 8 中,现在没有像p a r t i t i o n _ v i e w _ e n a b l e d
这样的初始化参数需要告诉优化器。除了在 Oracle 7 中的初始化参数以外,分区通过约束和视
图来实现。实际上,整个被分区的表是一个由约束创建和存储的所有这些平行的片段的联合
体。平行片段自身在实际的表中。
在Oracle 8 中情况有所不同,因为在Oracle 8数据库存储结构中,分区是一个新的物理层,
驻留在表和它的区间之间。表被映射为一系列分区,这些分区反过来逐一映射到一系列区间,
这些区间中的每个映射到一个或多个表空间,每个表空间具有一个或多个数据文件。图 1 0 - 1
比较了分区表和非分区表。
非分区的表
T e TTS df d
分区的表
p1p1 e1 df1 d1
p2 e2 df2 d2
T TTS
p3 e3 df3 d3
p4 e4 df4 d4
T =表,e =分区,T S =表空间,d f =数据文件,d =磁盘,p =分区
图10-1 比较分区表和非分区表
更进一步
原创力文档

文档评论(0)