【SQL开发实战技巧】系列(四十八):Oracle12C常用新特性☞多分区操作和管理

系列文章目录

【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事
【SQL开发实战技巧】系列(二):简单单表查询
【SQL开发实战技巧】系列(三):SQL排序的那些事
【SQL开发实战技巧】系列(四):从执行计划讨论UNION ALL与空字符串&UNION与OR的使用注意事项
【SQL开发实战技巧】系列(五):从执行计划看IN、EXISTS 和 INNER JOIN效率,我们要分场景不要死记网上结论
【SQL开发实战技巧】系列(六):从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放
【SQL开发实战技巧】系列(七):从有重复数据前提下如何比较出两个表中的差异数据及对应条数聊起
【SQL开发实战技巧】系列(八):聊聊如何插入数据时比约束更灵活的限制数据插入以及怎么一个insert语句同时插入多张表
【SQL开发实战技巧】系列(九):一个update误把其他列数据更新成空了?Merge改写update!给你五种删除重复数据的写法!
【SQL开发实战技巧】系列(十):从拆分字符串、替换字符串以及统计字符串出现次数说起
【SQL开发实战技巧】系列(十一):拿几个案例讲讲translate|regexp_replace|listagg|wmsys.wm_concat|substr|regexp_substr常用函数
【SQL开发实战技巧】系列(十二):三问(如何对字符串字母去重后按字母顺序排列字符串?如何识别哪些字符串中包含数字?如何将分隔数据转换为多值IN列表?)
【SQL开发实战技巧】系列(十三):讨论一下常用聚集函数&通过执行计划看sum()over()对员工工资进行累加
【SQL开发实战技巧】系列(十四):计算消费后的余额&计算银行流水累计和&计算各部门工资排名前三位的员工
【SQL开发实战技巧】系列(十五):查找最值所在行数据信息及快速计算总和百之max/min() keep() over()、fisrt_value、last_value、ratio_to_report
【SQL开发实战技巧】系列(十六):数据仓库中时间类型操作(初级)日、月、年、时、分、秒之差及时间间隔计算
【SQL开发实战技巧】系列(十七):数据仓库中时间类型操作(初级)确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数
【SQL开发实战技巧】系列(十八):数据仓库中时间类型操作(进阶)INTERVAL、EXTRACT以及如何确定一年是否为闰年及周的计算
【SQL开发实战技巧】系列(十九):数据仓库中时间类型操作(进阶)如何一个SQL打印当月或一年的日历?如何确定某月内第一个和最后—个周内某天的日期?
【SQL开发实战技巧】系列(二十):数据仓库中时间类型操作(进阶)获取季度开始结束时间以及如何统计非连续性时间的数据
【SQL开发实战技巧】系列(二十一):数据仓库中时间类型操作(进阶)识别重叠的日期范围,按指定10分钟时间间隔汇总数据
【SQL开发实战技巧】系列(二十二):数仓报表场景☞ 从分析函数效率一定快吗聊一聊结果集分页和隔行抽样实现方式
【SQL开发实战技巧】系列(二十三):数仓报表场景☞ 如何对数据排列组合去重以及通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高
【SQL开发实战技巧】系列(二十四):数仓报表场景☞通过案例执行计划详解”行转列”,”列转行”是如何实现的
【SQL开发实战技巧】系列(二十五):数仓报表场景☞结果集中的重复数据只显示一次以及计算部门薪资差异高效的写法以及如何对数据进行快速分组
【SQL开发实战技巧】系列(二十六):数仓报表场景☞聊聊ROLLUP、UNION ALL是如何分别做分组合计的以及如何识别哪些行是做汇总的结果行
【SQL开发实战技巧】系列(二十七):数仓报表场景☞通过对移动范围进行聚集来详解分析函数开窗原理以及如何一个SQL打印九九乘法表
【SQL开发实战技巧】系列(二十八):数仓报表场景☞人员分布问题以及不同组(分区)同时聚集如何实现
【SQL开发实战技巧】系列(二十九):数仓报表场景☞简单的树形(分层)查询以及如何确定根节点、分支节点和叶子节点
【SQL开发实战技巧】系列(三十):数仓报表场景☞树形(分层)查询如何排序?以及如何在树形查询中正确的使用where条件
【SQL开发实战技巧】系列(三十一):数仓报表场景☞分层查询如何只查询树形结构某一个分支?如何剪掉一个分支?
【SQL开发实战技巧】系列(三十二):数仓报表场景☞对表中某个字段内的值去重
【SQL开发实战技巧】系列(三十三):数仓报表场景☞从不固定位置提取字符串的元素以及搜索满足字母在前数字在后等条件的数据
【SQL开发实战技巧】系列(三十四):数仓报表场景☞如何对数据分级并行转为列
【SQL开发实战技巧】系列(三十五):数仓报表场景☞根据条件返回不同列的数据以及Left /Full Join注意事项
【SQL开发实战技巧】系列(三十六):数仓报表场景☞整理垃圾数据:查找数据的连续性时间和重叠时间的关系,初始化开始结束时间
【SQL开发实战技巧】系列(三十七):数仓报表场景☞从表内始终只有近两年的数据,要求用两列分别显示其中一年的数据聊行转列隐含信息的重要性
【SQL开发实战技巧】系列(三十八):数仓报表场景☞拆分字符串进行连接
【SQL开发实战技巧】系列(三十九):Oracle12C常用新特性☞新增分页查询
【SQL开发实战技巧】系列(四十):Oracle12C常用新特性☞可以在同样的列(列组合)上创建多个索引以及可以对DDL操作进行日志记录
【SQL开发实战技巧】系列(四十一):Oracle12C常用新特性☞APPROX_COUNT_DISTINCT以及TEMP UNDO(临时undo记录可以存储在一个临时表中)
【SQL开发实战技巧】系列(四十二):Oracle12C常用新特性☞With FUNCTION新特性
【SQL开发实战技巧】系列(四十三):Oracle12C常用新特性☞转换函数的增强和不可见字段
【SQL开发实战技巧】系列(四十四):Oracle12C常用新特性☞你知道吗Oralcle新增了类似Mysql的自增列(Identity Columns)功能
【SQL开发实战技巧】系列(四十五):Oracle12C常用新特性☞varchar2/nvarchar2类型最大长度由4000字节扩展到32767字节
【SQL开发实战技巧】系列(四十六):Oracle12C常用新特性☞会话级序列及数据泵(DataPump增强)支持像表一样导出视图
【SQL开发实战技巧】系列(四十七):Oracle12C常用新特性☞非分区表在线转分区表online clause(不停业务+索引有效)
【SQL开发实战技巧】系列(四十八):Oracle12C常用新特性☞多分区操作和管理


文章目录

  • 系列文章目录
  • 前言
  • 【SQL开发实战技巧】系列(四十八):Oracle12C常用新特性☞多分区操作和管理
  • 一、增加多个新分区
  • 二、同时截断/删除多个分区
  • 三、同时拆分多个分区
  • 四、同时合并多个分区
  • 总结


前言

本篇文章主要给讲解的Oracle12C+的新特性是:*** 多分区操作和管理:通过ALTER TABLE ADD PARTITION增加多个新分区、 通过ALTER TABLE table_name {DROP|TRUNCATE}PARTITIONS 同时截断/删除多个分区、通过SPLIT PARTITION同时拆分多个分区、通过ALTER TBALE MERGE PARTITIONS合并多个分区***

【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。


【SQL开发实战技巧】系列(四十八):Oracle12C常用新特性☞多分区操作和管理

一、增加多个新分区

在Oracle 12c R1之前,一次只可能添加一个新分区到一个已存在的分区表。要添加一个以上的新分区,需要对每个新分区都单独执行一次ALTER TABLE ADD PARTITION语句。而Oracle 12c只需要使用一条单独的ALTER TABLE ADD PARTITION 命令就可以添加多个新分区,这增加了数据库灵活性。
案例:
创建测试用表:

CREATE TABLE  t1_part (eno number(8), ename varchar2(40), sal number (6))PARTITION BY RANGE (sal)
(PARTITION p1 VALUES LESS THAN (10000),
PARTITION p2 VALUES LESS THAN (20000),
PARTITION p3 VALUES LESS THAN (30000));

插入一条数据:

insert into t1_part values(1,'a',1);
insert into t1_part values(2,'a',10001);
insert into t1_part values(3,'a',20001);
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T1_PART';

在这里插入图片描述

ALTER TABLE t1_part ADD PARTITION p4 VALUES LESS THAN (35000),PARTITION p5 VALUES LESS THAN (40000);
insert into t1_part values(4,'a',34000);
insert into t1_part values(5,'a',35001);
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T1_PART';

在这里插入图片描述

二、同时截断/删除多个分区

作为数据维护的一部分,DBA通常会在一个分区表上进行删除或截断分区的维护任务。在12c R1之前,对于一个已存在的分区表一次只可能删除或截断一个分区。而对于Oracle12c, 可以用单条ALTER TABLE table_name {DROP|TRUNCATE}PARTITIONS 命令来撤销或合并多个分区和子分区。
案例:

alter table t1_part drop partitions p4,p5;
ALTER TABLE t1_part TRUNCATE partitions p2,p3;
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T1_PART';

在这里插入图片描述

select * from t1_part partition(p2)
union all
select * from t1_part partition(p3);
no rows.

三、同时拆分多个分区

在12c中新增强的SPLIT PARTITION 语句可以只使用一个单独命令将一个特定分区或子分区分割为多个新分区。
案例:

创建测试用表:
CREATE TABLE t2_part (eno number(8), ename varchar2(40), sal number(6))
PARTITION BY RANGE (sal)
(PARTITION p1 VALUES LESS THAN (10000),
PARTITION p2 VALUES LESS THAN (20000),
PARTITION p_max VALUES LESS THAN (MAXVALUE) );
insert into t2_part values(1,'a',1);
insert into t2_part values(2,'a',10009);
insert into t2_part values(2,'a',20000);
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T2_PART';

在这里插入图片描述

ALTER TABLE t2_part
SPLIT PARTITION p_max INTO
(PARTITION p3 VALUES LESS THAN (25000),
PARTITION p4 VALUES LESS THAN (30000),
PARTITION p_max);
insert into t2_part values(4,'a',24000);
insert into t2_part values(5,'a',26000);
insert into t2_part values(6,'a',29000);
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T2_PART';

在这里插入图片描述

四、同时合并多个分区

在12C中可以使用单条ALTER TBALE MERGE PARTITIONS 语句将多个分区合并为一个单独分区。
案例:

alter table t2_part merge partitions p2 to p3 into partition p_m23;
select segment_name,segment_type,PARTITION_NAME,TABLESPACE_NAME from user_segments where segment_name = 'T2_PART';

在这里插入图片描述


总结

以上是总结的Oracle12C+对于分区表的一些实用的新特性实战。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/255268.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全方位解读SeaTunnel MySQL CDC连接器:实现数据高效同步的强大工具

在当今数据快速增长的时代,实时、高效地同步和处理来自各种数据源的信息成为了企业和开发者面临的重要挑战。 MySQL作为广泛使用的数据库之一,其变更数据捕获(CDC)功能对于实现这一目标至关重要。在这篇文章中,我们将深…

[Linux] nginx配置的主配置文件

一、六个模块的作用 全局块:全局配置,对全局生效; events块:配置影响 Nginx 服务器与用户的网络连接; http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;…

如何评估和提高网页速度?

页面内容的加载速度称为页面的网站速度或加载速度。拥有快速的网站加载时间对于搜索引擎优化至关重要。页面加载时间受多个变量影响,包括虚拟主机和页面大小。桌面版和移动版网站之间也存在性能差距。了解页面速度如何影响搜索引擎优化,从何处获取衡量工…

UVM:uvm_component与uvm_object

(1)uvm_component与uvm_object的关系 uvm_object是UVM中最基本的类,几乎所有的类都继承自uvm_object,包括uvm_component。uvm_component派 生自uvm_object这个事实会让很多人惊讶,而这个事实说明了uvm_component拥有uv…

CentOS上的HTTPS:如何设置安全的HTTPS连接

在CentOS系统上设置安全的HTTPS连接是保护你的网站和用户数据的关键步骤。通过使用HTTPS,你可以加密与用户的通信,并确保数据在传输过程中的安全性。以下是设置安全的HTTPS连接的步骤概述: 获取SSL证书: 首先,你需要…

星闪的三层架构

在数字化转型的浪潮中,物联网技术正成为连接世界的纽带,将各种智能设备融为一个无缝的整体。而在这个大背景下,星闪崭露头角,将成为连接未来的关键枢纽。本文将介绍星闪系统的三层架构,包括基础应用层、基础服务层和星…

热烈祝贺许战海老师成为北京湖南商会特聘专家!

在北京的初冬时节,一股商业的暖流在世纪华天大酒店的湖南厅中涌动。2023年12月3日下午,这里迎来了一场盛大的聚会——北京湖南企业商会成立20周年的预热活动之一:“湘商大讲堂”。这不仅是一次庆祝,更是一次对未来的展望&#xff…

C语言二叉树的基本概念(一)

目录 二叉树 二叉树的分类(目前只谈两种) 满二叉树 完全二叉树 二叉树的性质(其余的可以自己总结) 选择练习 二叉树的存储结构 顺序存储方式 链式存储方式 二叉树 定义:二叉树是一种特殊的树状数据结构&…

系统调用过程

应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由…

qt 5.15.2 主窗体菜单工具栏树控件功能

qt 5.15.2 主窗体菜单工具栏树控件功能 显示主窗体效果&#xff1a; mainwindow.h文件内容&#xff1a; #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QFileDialog> #include <QString> #include <QMessageBox>#inc…

SFX的妙用——如何在不安装软件的情况下打开自定义格式文件?

前段时间看到群友讨论压缩包能不能运行&#xff0c;想起了n年前用自解压文件SFX实现的一个“需求”&#xff1a;在没有安装任何应用软件的Windows&#xff08;当时还要支持XP&#xff09;上能双击打开自定义格式的文件。当时第一反应是这“需求”太奇葩了&#xff0c;简直是不可…

【JavaScript】JS——Map数据类型

【JavaScript】JS——Map数据类型 什么是Map?特性Map与Object的比较 map的创建map的属性map相关方法map的遍历 什么是Map? 存储键值对的对象。 能够记住键的原始插入顺序任何值&#xff08;对象或原始值&#xff09;都可以作为键或值。 特性 Map中的一个键只能出现一次&am…