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

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

相关文章

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

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

MySQL使用binlog2sql工具实现在线恢复数据功能

《MySQL使用binlog2sql工具实现在线恢复数据功能》binlog2sql是大众点评开源的一款用于解析MySQLbinlog的工具,根据不同选项,可以得到原始SQL、回滚SQL等,下面我们就来... 目录背景目标步骤准备工作恢复数据结果验证结论背景生产数据库执行 SQL 脚本,一般会经过正规的审批

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,