ORACLE11G分区表新特性

  

  <强> 1。引用分区表   

  

  使子表使用父表的分区条件进行分区,而无需在子表中额外添加用于分区的列,造成数据逆规范化,造成空间浪费等问题。   

  

  参考实例:   

  

  (1)创建主表   

  

  CREATE TABLE命令
  (
  ,,订单号,,,,,,主键,
  ,,order_date ,日期不是NULL,
  ,,data ,,,,,,,VARCHAR2 (30)
  )
  分区的范围
  ,,(order_date)
  ,,(
  ,,,,分区
  ,,,,,,,part_2016值小于(TO_DATE (' 01-01-2017 ', ' dd-mm-yyyy ')),
  ,,,,分区
  ,,,,,,,part_2017值小于(TO_DATE (' 01-01-2018 ', ' dd-mm-yyyy ')))
/

  

  插入订单值(1,to_date (' 01-01-2017 ', ' dd-mm-yyyy '),“xxx”);
  插入订单值(2,to_date (' 01-01-2016 ', ' dd-mm-yyyy ') '多');   

  

  提交;   

  

  
  

  

  (2)。创建子表   

  

  创建表order_line_items
  ,,(,
  ,,,,订单号,,,,,非空,
  ,,,,行#,,,,,非空,
  ,,,,data ,,,,varchar2 (30),
  ,,,,主键约束c1_pk(订单#,#行),
  ,,,,约束c1_fk_p外键订单(订单号)引用
  ,,,)
  ,,使行运动
  ,,分区通过引用(c1_fk_p)
  ,,/

  

  插入order_line_items values (1,'多');
  插入order_line_items values (2,1,'多');   

  

  
  

  

  ,选择table_name partition_name
  ,,从user_tab_partitions
  ,,在table_name(“订单”、“ORDER_LINE_ITEMS”)
  ORDER BY table_name partition_name;   

  

  TABLE_NAME ,,,,,,,,,PARTITION_NAME
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  ORDERS ,,,,,,,,,,,,,PART_2016
  ORDERS ,,,,,,,,,,,,,PART_2017
  ORDER_LINE_ITEMS ,,,PART_2016
  ORDER_LINE_ITEMS ,,,PART_2017   

  

  
  

  

  (3)。删除父表分区,可以级联删除子表分区   

  

  alter table命令删除分区part_2016更新全局索引;   

  

  TABLE_NAME ,,,,,,,,,PARTITION_NAME
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  ORDERS ,,,,,,,,,,,,,PART_2017
  ORDER_LINE_ITEMS ,,,PART_2017   

  

  
  

  

  (4)。添加父表分区,可以级联添加子表分区   

  

  alter table命令添加分区part_2018值小于(to_date (' 01-01-2019 ', ' dd-mm-yyyy '));   

  

  TABLE_NAME ,,,,,,,,,PARTITION_NAME
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  ORDERS ,,,,,,,,,,,,,PART_2017
  ORDERS ,,,,,,,,,,,,,PART_2018
  ORDER_LINE_ITEMS ,,,PART_2017
  ORDER_LINE_ITEMS ,,,PART_2018   

  

  
  

  

  (5)。删除子表分区,报的错   

  

  alter table order_line_items下降分区PART_2017更新全局索引;   

  

  ora - 14255:不分区表范围,范围或复合列表列表、复合方法   

  

  
  

  

  (6).truncate子表分区,可行。   

  

  改变表管理。order_line_items截断分区PART_2017;   

  

  
  

  

  <强> 2。间隔分区表   

  

  定义分区规则,当有符合条件的数据插入时自动创建分区。   

  

  可以使用改变命令将现有的区间分区表修改为间隔分区,也可以使用创造创建一个间隔分区。   

  

  间隔分区的特点
  ——由范围分区派生而来
  ——以定长宽度创建分区(比如年,月,具体的数字(比如100500等))
  ——分区字段必须是数字或日期类型
  ——必须至少指定一个范围分区(永久分区)
  ——当有记录插入时,系统根据需要自动创建新的分区和本地索引
  ——已有的范围分区可被转换成间隔分区(通过ALTER TABLE设置间隔选项完成)
  间隔分区不支持支持索引组织表
  ——在间隔分区表上不能创建域索引   

  

  
  

  

  参考示例:   

  

  ——创建间隔分区表   

  

ORACLE11G分区表新特性