Oracle 分区的概念

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle 分区的概念

分区是指将巨型的表或索引分割成相对较小的、可独立管理的部分,这些独立的部分称为原来表或索引的分区。分区后的表与未分区的表在执行查询语句或其他DML语句时没有任何区别,一旦进行分区之后,还可以使用DDL语句对每个单独的分区进行操作。因此,对巨型表或者索引进行分区后,能够简化对它们的管理和维护操作,而且分区对于最终用户和应用程序是完全透明的。

在对表进行分区后,每一个分区都具有相同的逻辑属性。例如,各个分区都具有相同的字段名、数据类型和约束等。但是各个分区的物理属性可以不同,例如,各个分区可以具有不同的存储参数,或者位于不同的表空间中。

如果对表进行了分区,表中的每一条记录都必须明确地属于某一个分区。记录应当属于哪一个分区是记录中分区字段的值决定的。分区字段可以是表中的一个字段或多个字段的组合,这时在在创建分区表时确定。在对分区表执行插入、删除或更新等操作时,Oracle会自动根据分区字段的值来选择所操用的分区。分区字段由1~16个字段以某种顺序组成,但不能包含ROWID等伪列,也不能包含全为NULL值的字段。

图10-1显示了一个典型的分区表。通常在对表进行分区时也会将地对应的索引进行分区,但是未分区的表可以具有分区的索引,而分区的表也可以具有未分区的索引。

索引索引

索引

索引

5月6月7月

未分区的表(分区的索引)

分区的表(分区的索引)

图10-1 分区表与分区索引

一个表可以被分割成任意数目的分区,但如果在表中包含有LONG或LONG RAW类型的字段,则不能对表分区。对于索引组织表而言,虽然也可以分区,但是有如下一些限制:

●索引组织表仅支持范围和散列分区,不能以列表或复合方式对索引组织表进行分

区。

●分区字段必须是主键字段的一个子集。

●如果在索引组织表中使用了OVERFLOW子句,溢出存储段将随表的分区进行相

同的分割。

下面给出了应当考虑对表进行分区的一些常见情况:

●如果一个表的大小超过了2GB,通常会对它进行分区。

●如果要对一表进行并行DML操作,则必须对它进行分区。

●如果为了平衡硬盘I/O操作,需要将一个表分散存储在不同的表空间中,这时就必

须对表进行分区。

●如果需要将表的一部分置为只读,而另一部分为可更新的,则必须以它进行分区。

相关文档
最新文档