通过在线重定义将普通表转成分区表
来源:互联网 发布:淘宝ps美工培训班 编辑:程序博客网 时间:2024/05/20 08:01
通过在线重定义,将普通表转成分区表
SELECT * FROM TEST.TAB1;
--创建中间表分区表,表结构与源表一样,下面以时间分区,分区的表空间,分多少区自己定义
CREATE TABLE TEST.PARTITION_TAB1
partition by range(basj)(
partition basj_range_2006 values less than (to_date('2006-12-31 23:59:59','yyyy-mm-dd hh24:mi:ss')),
partition basj_range_2012 values less than (to_date('2012-12-31 23:59:59','yyyy-mm-dd hh24:mi:ss')),
partition basj_range_2018 values less than (to_date('2018-12-31 23:59:59','yyyy-mm-dd hh24:mi:ss'))
) as SELECT * FROM TEST.TAB1 where 0=1
--增加分区 表空间自己指定
--开始复制源表行记录到中间表
call dbms_redefinition.start_redef_table('TEST','TAB1','PARTITION_TAB1');
--复制源表主键约束,索引到中间表,下面是在命令行执行
SET SERVEROUTPUT ON;
VARIABLE NERRORS NUMBER;
BEGIN
DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS ( 'TEST','TAB1','PARTITION_TAB1', NUM_ERRORS => :NERRORS );
END;
--如果源表数据有变化,可以同步到中间表
call dbms_redefinition.sync_interim_table('TEST','TAB1','PARTITION_TAB1');
--完成普通表转分区表的转换
call dbms_redefinition.finish_redef_table('TEST','TAB1','PARTITION_TAB1');
--TEST.TAB1 就转好分区表了,查询分区
SELECT * FROM TEST.TAB1;
--查询表是否可以使用在线重定义,如果不返回任何内容,则可以
--创建中间表分区表,表结构与源表一样,下面以时间分区,分区的表空间,分多少区自己定义
CREATE TABLE TEST.PARTITION_TAB1
partition by range(basj)(
partition basj_range_2006 values less than (to_date('2006-12-31 23:59:59','yyyy-mm-dd hh24:mi:ss')),
partition basj_range_2012 values less than (to_date('2012-12-31 23:59:59','yyyy-mm-dd hh24:mi:ss')),
partition basj_range_2018 values less than (to_date('2018-12-31 23:59:59','yyyy-mm-dd hh24:mi:ss'))
) as SELECT * FROM TEST.TAB1 where 0=1
--增加分区 表空间自己指定
--ALTER TABLE TEST.TAB1 ADD PARTITION basj_range_2024 VALUES LESS THAN (TO_DATE('2014-12-31 23:59:59','YYYY-MM-DD HH24:MI:SS'))TABLESPACE XXX
--开始复制源表行记录到中间表
call dbms_redefinition.start_redef_table('TEST','TAB1','PARTITION_TAB1');
--复制源表主键约束,索引到中间表,下面是在命令行执行
SET SERVEROUTPUT ON;
VARIABLE NERRORS NUMBER;
BEGIN
DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS ( 'TEST','TAB1','PARTITION_TAB1', NUM_ERRORS => :NERRORS );
END;
--如果源表数据有变化,可以同步到中间表
call dbms_redefinition.sync_interim_table('TEST','TAB1','PARTITION_TAB1');
--完成普通表转分区表的转换
call dbms_redefinition.finish_redef_table('TEST','TAB1','PARTITION_TAB1');
--TEST.TAB1 就转好分区表了,查询分区
SELECT * FROM TEST.TAB1 PARTITION(BASJ_RANGE_2012) ORDER BY BASJ DESC;
具体可以研究一下 dbms_redefinition 这个包
0 0
- 通过在线重定义将普通表转成分区表
- Oracle普通表转成分区表(在线重定义)
- 将普通表在线重定义为分区表
- 使用ORACLE在线重定义将普通表改为分区表
- 使用ORACLE在线重定义将普通表改为分区表
- oracle在线重定义将普通表改为分区表
- 使用ORACLE在线重定义将普通表改为分区表
- 在线重定义普通表为分区表
- Oracle的在线重定义(将普通表转为分区表ora9i以上版本)
- Oracle的在线重定义(将普通表转为分区表ora9i以上版本) --验证
- 在线重定义方法将普通表变为分区表的步骤
- Oracle 在线重定义(将普通表转为分区表ora9i以上版本)
- Oracle的在线重定义(将普通表转为分区表ora9i以上版本)
- 如何用在线重定义的方式将普通表变为分区表
- [Oracle] 表在线重定义 - 普通表到分区表
- [Oracle] 表在线重定义 - 普通表到分区表
- oracle在线重定义(一)普通表到分区表
- 普通表转化成分区表一例(在线重定义分区表)
- HDU5512 Pagodas
- 51nod-最长单增子序列
- QTSS回调例程
- OS_OPT_POST_1 OS_OPT_POST_ALL
- Perfect smooth scrolling in UITableViews
- 通过在线重定义将普通表转成分区表
- Tomcat之session详解
- gcc 小结
- BI商业智能
- 数据库备份
- js在页面上显示钟表
- 一致性哈希算法(consistent hashing)
- JavaScript中Element与Node的区别,children与childNodes的区别
- Autobook中文版 (六)-- 8. Bootstrapping