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

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

相关文章

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

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

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

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

电力系统中的A类在线监测装置—APView400

随着电力系统的日益复杂和人们对电能质量要求的提高,电能质量在线监测装置在电力系统中得到广泛应用。目前,市场上的在线监测装置主要分为A类和B类两种类型,A类和B类在线监测装置主要区别在于应用场景、技术参数、通讯协议和扩展性。选择时应根据实际需求和应用场景综合考虑,并定期维护和校准。电能质量在线监测装置是用于实时监测电力系统中的电能质量参数的设备。 APView400电能质量A类在线监测装置以其多核

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

浙大数据结构:树的定义与操作

四种遍历 #include<iostream>#include<queue>using namespace std;typedef struct treenode *BinTree;typedef BinTree position;typedef int ElementType;struct treenode{ElementType data;BinTree left;BinTre

类和对象的定义和调用演示(C++)

我习惯把类的定义放在头文件中 Student.h #define _CRT_SECURE_NO_WARNINGS#include <string>using namespace std;class student{public:char m_name[25];int m_age;int m_score;char* get_name(){return m_name;}int set_name

c++ 定义二位数组

在 C++ 中,定义二维数组有几种常见的方式。以下是几个示例: 1. 静态二维数组 定义: int array[3][4]; 这里,array 是一个 3 行 4 列的整数二维数组。 初始化: int array[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}}; 2. 动态二维数组 使用指针和动态内存分配: 定义:

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'