<强> 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设置间隔选项完成)
间隔分区不支持支持索引组织表
——在间隔分区表上不能创建域索引
参考示例:
——创建间隔分区表