普通表在线重定义为分区表

2024-06-12 17:36
文章标签 定义 在线 普通 分区表

本文主要是介绍普通表在线重定义为分区表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

普通表在线转换成分区表示例 

源表表结构如下
CREATE TABLE  EDC_SEPERATOR
(
  SEPERATOR_ID   NUMBER(15) NOT NULL,
  EQUIPMENTINFO  NVARCHAR2(20),
  RECORD         NVARCHAR2(50),
  TITLE          NVARCHAR2(50),
  ID             NVARCHAR2(50),
  TESTDATE       NVARCHAR2(50),
  TESTTIME       VARCHAR2(50 BYTE),
  COMT           NVARCHAR2(50),
  OPERATOR       NVARCHAR2(50),
  CLASSIFIC      NVARCHAR2(50),
  BIN            NVARCHAR2(50),
  UOC            NVARCHAR2(50),
  ISC            NVARCHAR2(50),
  RSERIEC        NVARCHAR2(50),
  RSH            NVARCHAR2(50),
  FF             NVARCHAR2(50),
  ETA            NVARCHAR2(50),
  IREV2          NVARCHAR2(50),
  TCELL          NVARCHAR2(50),
  TMONICELL      NVARCHAR2(50),
  INSOL          NVARCHAR2(50),
  UMPP           NVARCHAR2(50),
  IMPP           NVARCHAR2(50),
  PMPP           NVARCHAR2(50),
  JSC            NVARCHAR2(50),
  ENTITY_RRN     NUMBER(15),
  SORTER_SEQ     NUMBER(15),
  IMPORTTIME     DATE,
  DBIMPORTTIME   DATE
)

在源表上面建立索引
CREATE INDEX  INDX_EDC_SEPERATOR ON  EDC_SEPERATOR(IMPORTTIME);
CREATE INDEX  INDX3_EDC_SEPERATOR ON  EDC_SEPERATOR(COMT);

开始在线重定义源表
如果有主键,基于主键重定义
BEGIN
  DBMS_REDEFINITION.CAN_REDEF_TABLE('AHERN', 'EDC_SEPERATOR');
END;
/
没有主键,基于 row_id 重定义
BEGIN
  DBMS_REDEFINITION.CAN_REDEF_TABLE('AHERN',
                                    'EDC_SEPERATOR',
                                    DBMS_REDEFINITION.CONS_USE_ROWID);
END;
/

首先创建重定义需要的中间表

注意:中间表创建为与源表表结构一致的分区表,以时间字段IMPORTTIME分区键,按月自动分区。
CREATE TABLE  TMP_P
(
  SEPERATOR_ID   NUMBER(15) NOT NULL,
  EQUIPMENTINFO  NVARCHAR2(20),
  RECORD         NVARCHAR2(50),
  TITLE          NVARCHAR2(50),
  ID             NVARCHAR2(50),
  TESTDATE       NVARCHAR2(50),
  TESTTIME       VARCHAR2(50 BYTE),
  COMT           NVARCHAR2(50),
  OPERATOR       NVARCHAR2(50),
  CLASSIFIC      NVARCHAR2(50),
  BIN            NVARCHAR2(50),
  UOC            NVARCHAR2(50),
  ISC            NVARCHAR2(50),
  RSERIEC        NVARCHAR2(50),
  RSH            NVARCHAR2(50),
  FF             NVARCHAR2(50),
  ETA            NVARCHAR2(50),
  IREV2          NVARCHAR2(50),
  TCELL          NVARCHAR2(50),
  TMONICELL      NVARCHAR2(50),
  INSOL          NVARCHAR2(50),
  UMPP           NVARCHAR2(50),
  IMPP           NVARCHAR2(50),
  PMPP           NVARCHAR2(50),
  JSC            NVARCHAR2(50),
  ENTITY_RRN     NUMBER(15),
  SORTER_SEQ     NUMBER(15),
  IMPORTTIME     DATE,
  DBIMPORTTIME   DATE
)
PARTITION BY RANGE (IMPORTTIME)
INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))
(
   PARTITION P1 VALUES LESS THAN (to_date('20180101','YYYYMMDD'))
)  TABLESPACE USERS

开始在线重定义
BEGIN
  DBMS_REDEFINITION.START_REDEF_TABLE('AHERN',
                                      'EDC_SEPERATOR',
                                      'TMP_P',
                                      NULL,
                                      2);
END;
/

在线同步
BEGIN
  DBMS_REDEFINITION.SYNC_INTERIM_TABLE('AHERN', 'EDC_SEPERATOR', 'TMP_P');
END;
/

中间表创建索引
CREATE INDEX  INDX_P_SEPERATOR ON  TMP_P(IMPORTTIME);
CREATE INDEX  INDX3_P_SEPERATOR ON  TMP_P (COMT);

完成重定义
BEGIN
  DBMS_REDEFINITION.FINISH_REDEF_TABLE('AHERN', 'EDC_SEPERATOR', 'TMP_P');
END;
/

删除中间表
DROP TABLE tmp_p;

检查是否已经分区
SELECT TABLE_NAME, PARTITIONED
  FROM DBA_TABLES
 WHERE TABLE_NAME = 'EDC_SEPERATOR';

这篇关于普通表在线重定义为分区表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1054880

相关文章

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

kkFileView在线预览office的常见问题以及解决方案

《kkFileView在线预览office的常见问题以及解决方案》kkFileView在线预览Office常见问题包括base64编码配置、Office组件安装、乱码处理及水印添加,解决方案涉及版本适... 目录kkFileView在线预览office的常见问题1.base642.提示找不到OFFICE组件

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

MySQL分区表的具体使用

《MySQL分区表的具体使用》MySQL分区表通过规则将数据分至不同物理存储,提升管理与查询效率,本文主要介绍了MySQL分区表的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、分区的类型1. Range partition(范围分区)2. List partition(列表分区)3. H

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl