设为首页 加入收藏

TOP

Oracle普通表转分区表的几种方法(二)
2015-11-21 01:28:29 来源: 作者: 【 】 浏览:1
Tags:Oracle 普通 分区表 方法
的列名和原表不一致,那么在开始重定义的时候,需要重新指定
映射关系:?
SQL> EXEC DBMS_REDEFINITION.START_REDEF_TABLE(?
'ICD',?
'unpar_table',?
'par_table',?
'ID ID, create_date TIME', -- 在这里指定新的映射关系?
DBMS_REDEFINITION.CONS_USE_PK);?
?
这一步操作结束后,数据就已经同步到这个临时的分区表里来了。
?
d3. 同步新表,这是可选的操作
SQL> BEGIN?
? 2 ? ?dbms_redefinition.sync_interim_table(?
? 3 ? ?uname => 'ICD',?
? 4 ? ?orig_table => 'unpar_table',?
? 5 ? ?int_table => 'par_table');?
? 6 ? ?END;?
? 7 ? ?/?
PL/SQL 过程已成功完成。
?
d4. 创建索引,在线重定义只重定义数据,索引还需要单独建立
sql> create index create_date_ind2 on par_table(time);?
?
d5. 收集新表的统计信息
sql> exec dbms_stats.gather_table_stats('icd', 'par_table', cascade => true);
?
d6. 结束重定义?
SQL> BEGIN?
? 2 ? ?dbms_redefinition.finish_redef_table(?
? 3 ? ?uname => 'ICD',?
? 4 ? ?orig_table => 'unpar_table',?
? 5 ? int_table => 'par_table');?
? 6 ? ?END;?
? 7 ? ?/?
PL/SQL 过程已成功完成
?
?
结束重定义的意义:?
?
基表unpar_table ?和临时分区表par_table ?进行了交换。 ?此时临时分区表
par_table成了普通表,我们的基表unpar_table成了分区表。 ?
?
我们在重定义的时候,基表unpar_table是可以进行DML操作的。 只有在2个表进行切换的时候会有短暂的锁表。
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle存储过程和函数 下一篇Oracle 时间加减

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: