如何对oracle切分区,oracle分库分表分区

oracle11g自动分区

在Oracle10g中,没有定义间隔分区,只能通过范围分区实现间隔分区功能,如果要实现自动创建分区,只能通过创建JOB或者scheduler来实现;而在11g中,Oracle直接提供了间隔分区功能,大大简化了间隔分区的实现。

创新互联公司成立于2013年,先为泰安等服务建站,泰安等地企业,进行企业商务咨询服务。为泰安企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

----注:oracle11g虽然可以自动分区,但是分区的名字不能自定义,对于需要定时删除分区时没法处理,不如通过时间范围来手工分区。详见

create table HIP_LOG_NODE_Part

(

ID                   VARCHAR2(32)         not null,

RECORD_TIME          DATE

)tablespace TB_HIP_LOG_NODE

PARTITION BY RANGE (RECORD_TIME) interval (numtoyminterval(1, 'month'))

STORE IN (TB_HIP_LOG_NODE)

(

partition hip_log_node_partition values less than (to_date('2019-08-01 00:00','yyyy-MM-dd HH24:mi')) tablespace TB_HIP_LOG_NODE

);

1、Oracle11g有间隔分区功能,对于使用Range分区的可以按年,月,日来自动生成分区。

2、2019-08-01前的数据(包含8月份的数据)会放入hip_log_node_partition 分区,8月1日后的数据每月只要有数据,就会自动创建一个分区。也就是从9月开始,开始新建分区。

3、interval函数--将数值按标准换算为日期

numtodsinterval、numtodsinterval函数,将数字转成年月,时分秒

详见:

4、查看表分区 select table_name,partition_name from user_tab_partitions where table_name='INTERVAL_SALES';

5、插入数据再次查看分区,详见:

6、修改分区、合并分区、拆分分区,详见 :

7、创建索引(分区索引、全局索引) :

非分区字段创建主键,则创建主键local索引时必须加上分区字段

ALTER TABLE TEST ADD CONSTRAINT PK_TEST PRIMARY KEY (主键字段,分区字段) USING INDEX LOCAL;

8、oracle 10g创建表分区

9、删除

1.不保留,直接删除:

alter table table_name drop/truncate partition partition_name;

具体用drop还是truncate,得你自己衡量,drop的话原来的分区和数据直接就没有了,truncate的话,只是数据没有了,分区还在。

如何将Oracle数据库的普通表转换成分区表

常用两种方法:

一种是使用create table as select方式创建一个分区表,然后将普通表重命名,然后对新的分区表创建所需索引,重命名等。

另外一种是在线重定义方式,调用DBMS_REDEFINITION这个包来实现,详情可百度学习下。

-------------------------------------------------------------------

个人推荐第一种,稳妥,速度也不错,嘿嘿!

oracle对现有大表进行分区

有很多种方法可以做分区表转换,常见的有:

1、CTAS,在建分区表时就把源表数据插进去

2、建分区表,从源表导出,再导入分区表,10g可以用数据泵

3、在线重定义,不影响业务,但速度慢些

2亿数据如果按平均行长70也就是十几g,不会很慢,只要存储不太差,估计个把小时怎么也完事了。在线重定义比较慢,但一晚上也没问题,30g的搞过6,7个小时。


网站名称:如何对oracle切分区,oracle分库分表分区
本文链接:http://azwzsj.com/article/hdpigd.html