首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在线分区

在线分区
EN

Stack Overflow用户
提问于 2013-01-08 14:24:07
回答 1查看 149关注 0票数 1

我有一个包含大量数据的表格,它是在客户端生产的。我必须对它进行在线分区,这意味着我可以停止生产,并且应该对表进行分区。我已经得到了做这件事的脚本。但是我不知道怎么在网上做。他们有没有办法让我做到这一点。请建议..

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-08 14:38:15

请按照以下步骤操作:

  1. 在与主表相同的结构中创建临时表(例如,TABLE_P表示表),并在所需的列上对此临时表进行分区。不要将主表的主键和其他索引添加到此临时表中。

create table TABLE_P ( COL1 VARCHAR2(35 CHAR) not null,COL2 VARCHAR2(35 CHAR) not null,)--从此处添加分区(此处的示例是范围分区) PARTITION BY RANGE (COL1) (分区p0值小于(5),分区p1值小于(10),分区p2值小于(15),分区p3值小于(MAXVALUE) --在此处添加分区

  • 为该表创建一个包含所需列的索引。

create index IX01_TABLE on TABLE_P (COL1) local;

  • 运行以下脚本进行重新定义。替换为实际的架构名称。

begin dbms_redefinition.can_redef_table( 'SCHEMA','TABLE‘);end;/ begin dbms_redefinition.start_redef_table('SCHEMA','TABLE','TABLE_P’);end;/声明error_count pls_integer := 0;BEGIN dbms_redefinition.copy_table_dependents(uname => 'SCHEMA',orig_table表‘=>’,int_table => 'TABLE_P',num_errors => error_count);dbms_output.put_line('errors :=‘|| to_char(error_count));END;/ begin TABLE’:=‘,'TABLE_P');end;/

请注意,这将使依赖对象在模式中变得无效,因此请为清除这些无效对象做好停机准备。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14209327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档