Oracle表分区

 






















Oracle数据库版本

分区功能

8.0.5

引入范围分区功

8i

引入散落列分区和组合范围散列分区功能。

9i

引入列表分区和组合范围列表分区功能。

10G

引入了对索引组织表进行范围分区、列表分区和三列分区的功能。该版本还引入了其他组合分区功能选择。

11G

引入扩展的分区功能:
-Interval分区
-外键分区
-虚拟列分区
-引入了分区建议器

 

范围分区:数据根据分区键值范围指定进行分布。比如,如果我们选择一个日期列作为分区键,分区“JAN-2007”就会包括所有包含从01-JAN-2007到31-JAN-2007之间的分区键值(假设分区的范围是从这个月的第一天到这个月的最后一天)。

 

Interval分区:11G版本引入的interval分区范围分区的一种增强功能,可实现equi-sized范围分区的自动化。创建的分区作为元数据,只有最开始的分区是永久分区。随着数据的增加会分配更多的部分,并自动创建新的分区和本地索引。

CREATE  TABLE SALES_PART 
(TIME_ID  NUMBER
 REGION_ID  NUMBER
 ORDER_ID  NUMBER
 ORDER_DATE DATE, 
 SALES_QTY  NUMBER( 10, 2), 
 SALES_AMOUNT  NUMBER( 12, 2

  PARTITION  BY RANGE (ORDER_DATE) 
  INTERVAL (NUMTOYMINTERVAL( 1, ' month ')   
  (PARTITION p_first  VALUES LESS THAN ( ' 01-JAN-2006 '); 

Numtoyminterval功能把数字转换成 INTERVAL YEAR TO MONTH文字(‘YEAR’ or ’MONTH’)。

进行Interval分区的表格有传统的范围部分和自动生成的interval部分。进行范围分区的表格可以通过使用ALTER TABLE命令的 SET
INTERVAL选项扩展成为Interval分区的表格。

 1  create  table graderecord  
 2 (  
 3   sno  varchar2( 10),  
 4   sname  varchar2( 20),  
 5   dormitory  varchar2( 3),  
 6   grade  int  
 7 )  
 8 partition  by range(grade)  
 9 (  
10    partition bujige  values less than( 60),  -- 不及格  
11      partition jige  values less than( 85),  -- 及格  
12      partition youxiu  values less than(maxvalue)  -- 优秀  
13  )  

 

 

 

 

 

 

你可能感兴趣的:(oracle)