【SQL应知应会】表分区(四)• Oracle版

请添加图片描述

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流

本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle

请添加图片描述

分区表 • Oracle版

  • 前言
  • 一、分区表
  • 1.什么是表分区
  • 2.创建分区表
    • 2.1 创建范围分区表
    • 2.2 创建列表分区表
    • 2.3 创建散列分区表
    • 2.4 创建复合分区表
  • 3.表分区操作
    • 3.1 创建`range-list`分区
    • 3.2查看分区
    • 3.3查看子分区
    • 3.4 添加分区
    • 3.5 添加子分区
    • 3.6 截断表分区
    • 3.7合并或拆分表分区
      • 3.7.1拆分分区
      • 3.7.2 合并分区
    • 3.8 删除分区
  • 4.分区模板
    • 4.1 对于分区而言,更好的做法就是使用分区模板
    • 4.2 查看分区
    • 4.3添加分区
    • 4.4 分区模板的好处与弊端
  • 小结

前言

✅对于表分区这块内容,我们在MySQL方面已经有五篇内容了,大家可以去我的专栏SQL应知应会进行学习
🆗前面也有过Oracle的表分区的开篇和表分区(二)• Oracle版、【SQL应知应会】表分区(三)• Oracle版了
今天这篇内容继续Oracle的表分区,将Oracle的表分区完结
✳️今天这篇主要讲了表分区的一些操作,如合并和拆分表分区,删除表分区,其实今天的重点分区模板
✴️如果大家学习过前面MySQL的表分区的话,那么对于今天的内容是很轻松就可以学会的,当然,这并没有严格的学习顺序的安排,只是对于MySQL的表分区,我花了大量的篇幅进行学习,大家可以根据自己的学习情况进行随意的选择学习顺序(无需有过多的顾虑)
希望文章的内容对大家有所帮助,如果有什么不足的地方,大家可以在评论区或者私信我,感谢大家的支持
💻那么,快拿出你的电脑,跟着文章一起学习起来吧

一、分区表

1.什么是表分区

👉:传送门💖什么是表分区💖

1.1 分区的意义
1.2 分区的作用
1.3 表分区的方法

2.创建分区表

2.1 创建范围分区表

👉:传送门💖创建范围分区表💖

2.1.1 基本语法
2.1.2 示例

2.2 创建列表分区表

👉:传送门💖创建列表分区表💖

2.2.1 基本语法
2.2.2 示例

2.3 创建散列分区表

👉:传送门💖创建散列分区表💖

2.3.1 基本语法
2.3.2 示例1
2.3.2 示例2

2.4 创建复合分区表

👉:传送门💖创建复合分区表💖

2.4.1 示例1 范围-列表复合分区
2.4.3 示例2 范围-散列复合分区

3.表分区操作

👉:传送门💖3.1~3.6💖

3.1 创建range-list分区

3.2查看分区

3.3查看子分区

3.4 添加分区

3.4.1 添加主分区不带子分区
3.4.2 添加主分区时将子分区带上

3.5 添加子分区

3.6 截断表分区

👉:传送门💖3.1~3.6💖

3.7合并或拆分表分区

3.7.1拆分分区

  • split用于拆分范围分区,拆的时候如果没有定义子分区,系统会自动给子分区一个名字(见下图)
alter table test_range_list_only split partition partrage_201102 at(201102) into(
partition partrage_201101,
partition partrage_201102
)# 有些分区是没有办法拆分的
## 例如分区partrage_201104
### 分区partrage_201104是小于201105月份分区,但是前面已经有partrage_201103(小于201104月份分区,所以partrage_201104分区里其实是201104月份,无法将201104月份再拆成两个月)

在这里插入图片描述

3.7.2 合并分区

alter table test_range_list_only merge partitions partrage_201101,partrage_201102 into partition partrage_201102 ;

在这里插入图片描述

3.8 删除分区

alter table test_range_list_only drop partition partrage_201102
  • 如果只剩下一个分区,是无法靠上述命令删除的,会出现报错ORA-14083:无法删除分区表的唯一分区

在这里插入图片描述

  • 想彻底删除分区就直接删除表,不然n个分区最多只能删除n-1个
drop table test_range_list_only purge; -- 想彻底删除分区就直接删除表,不然n个分区最多只能删除n-1个

4.分区模板

4.1 对于分区而言,更好的做法就是使用分区模板

create table test_partition(month_id varchar2(6),prov_id varchar2(20),imei varchar2(50),use_rat_flag varchar2(20))
partition by range(month_id)
subpartition by list(prov_id)
subpartition template(subpartition subpart010 values('010'),subpartition subpart011 values('011'),subpartition subpart013 values('013'),subpartition subpart017 values('017'),subpartition subpart018 values('018'),subpartition subpart019 values('019'),subpartition subpart030 values('030'),subpartition subpart031 values('031'),subpartition subpart034 values('034'),subpartition subpart036 values('036'),subpartition subpart038 values('038'),       subpartition subpart050 values('050'),subpartition subpart051 values('051'),subpartition subpart059 values('059'),subpartition subpart070 values('070'),subpartition subpart071 values('071'),subpartition subpart074 values('074'),subpartition subpart075 values('075'),subpartition subpart076 values('076'),subpartition subpart079 values('079'),subpartition subpart081 values('081'),subpartition subpart083 values('083'),subpartition subpart084 values('084'),subpartition subpart085 values('085'),subpartition subpart086 values('086'),subpartition subpart087 values('087'),subpartition subpart088 values('088'),subpartition subpart089 values('089'),subpartition subpart090 values('090'),subpartition subpart091 values('091'),subpartition subpart097 values('097'),subpartition subpartdefault values(default))
(      partition part201606 values less than ('201607')pctfree 0 pctused 40 initrans 1 maxtrans 255storage(buffer_pool default flash_cache default cell_flash_cache default)compress basic nologging);# pctfree 0 pctused 40 initrans 1 maxtrans 255: 这部分是用于指定表中的数据块的管理参数## pctfree: 空闲区域占用每个数据块的百分比。在此示例中,0 表示没有空闲区域。
## pctused: 数据块中至少被使用的百分比。在此示例中,40 表示数据块中至少需要被使用 40%。
## initrans: 表级别事务槽数,初始化时每个数据块的最大事务槽数。在此示例中,为 1。
## maxtrans: 最大事务槽数,数据块上的最大活动事务槽数。在此示例中,为 255。# storage (...): 这部分是用于指定表的存储参数
## 在此示例中,采用了默认的存储参数
## 这些参数包括缓冲池 (buffer_pool)、闪存缓存 (flash_cache) 和单元闪存缓存 (cell_flash_cache)。# compress basic: 这部分指定了表的压缩选项。在此示例中,采用了基本压缩。# nologging: 这部分指定了在表上执行的插入操作不记录日志。

4.2 查看分区

在这里插入图片描述
在这里插入图片描述

4.3添加分区

  • 前面的案例是每个子分区名称都不一样,如果像这个分区模板的案例,主分区中所有的子分区名称都是固定的,那么只需要每次add主分区就可以,会自动带上子分区
alter table test_partition add partition part201607 values less than ('201608')

在这里插入图片描述

4.4 分区模板的好处与弊端

  • 分区模板的好处:子分区前置,每次添加主分区,会自动带上子分区
  • 分区模板的弊端:不同主分区中的子分区的名称是一样的,但是它会产生唯一的子分区实例,自动拼接子分区名称(见上图)

在标题3.4中的创建表分区方式,就不能通过子分区模板去创建了,因为每个子分区定义的时候都不一样,这种是先定义了主分区,后定义了子分区

而子分区模板是先定义子分区,后定义主分区,不同的主分区中的子分区的名字是统一的

但是标题3.4中的创建方式有一个好处,就是每次都可以直观的看到子分区的名字,而子分区模板的子分区名字需要在系统表中查询

小结

😘感谢大家耐心的看完这篇文章,这篇文章是Oracle的表分区的第4篇文章,也是本专栏关于Oracle表分区的最后一篇文章,对于SQL在表分区的知识点,我们在MySQL方面已经有五篇内容了,大家可以去我的专栏SQL应知应会 进行学习,如果大家觉着还算可以,那么就给个三连支持一下吧
🏡也可以加入我的社区一起学习呀
✅如果想要继续关注和学习后续更多的内容,那就关注一下爱书不爱输的程序猿吧,当然,如果大家还有什么其他方面的知识点想要看,可以在评论区或者私信我

请添加图片描述

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

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

相关文章

Web安全——Burp Suite基础上

Burp Suite基础 一、Burp Suite安装和环境配置如何命令行启动Burp Suite 二、Burp Suite代理和浏览器设置FireFox设置 三、如何使用Burp Suite代理1、Burp Proxy基本使用2、数据拦截与控制3、可选项配置Options客户端请求消息拦截服务器端返回消息拦截服务器返回消息修改正则表…

【Windbg】通过网络调试windows内核

环境 windows版本:win10_x64 1901 windbg版本:1.2306.12001.0 HOST 1、windbg软件设置。 点击菜单文件,然后如下图操作。 2、等待连接。 ************* Waiting for Debugger Extensions Gallery to Initialize **************>>&…

Ansible环境搭建,CentOS 系列操作系统搭建Ansible集群环境

Ansible是一种自动化工具,基于Python写的,原理什么的就不过多再说了,详情参考:https://www.itwk.cc/post/403.html https://blog.csdn.net/qq_34185638/article/details/131079320?spm1001.2014.3001.5502 环境准备 HOSTNAMEIP…

Java分布式微服务3——Docker

文章目录 Docker介绍安装DockerDocker基础操作Docker服务的启动镜像命令容器命令1. 从docker hub去查看Nginx容器的运行命令2. 查看所有容器状态3. 查看容器日志4. 进入Nginx容器执行命令,修改Html内容,添加“Hello World”5. 停止与开始容器6. 删除容器…

synchronized原理

synchronized synchronized的用法参考Java中使用同步关键字synchronized需要注意的问题 - 小浩 - 博客园 synchronized是非公平锁 synchronized实现原理 16_深入JVM源码-monitor竞争_哔哩哔哩_bilibili 9 synchronized与锁 深入浅出Java多线程 (redspider.group) Java中…

springboot()—— swagger

零、一张图读懂swagger 懂了,这玩意就是用swagger搞出来的! 就是一个后端开发自测的东西嘛! 一、概念 存在即合理,我们看一下swagger诞生的原因:在前后端分离的架构中,前端新增一个字段,后端就…

【PDF密码】PDF文件不能打印,为什么?

正常的PDF文件是可以打印的,如果PDF文件打开之后发现文件不能打印,我们需要先查看一下自己的打印机是否能够正常运行,如果打印机是正常的,我们再查看一下,文件中的打印功能按钮是否是灰色的状态。 如果PDF中的大多数功…

Python-OpenCV 图像的基础操作

图像的基础操作 获取图像的像素值并修改获取图像的属性信息图像的ROI区域图像通道的拆分及合并图像扩边填充图像上的算术运算图像的加法图像的混合图像的位运算 获取图像的像素值并修改 首先读入一副图像: import numpy as np import cv2# 1.获取并修改像素值 # 读…

安全狗V3.512048版本绕过

安全狗安装 安全狗详细安装、遇见无此服务器解决、在windows中命令提示符中进入查看指定文件夹手动启动Apache_安全狗只支持 glibc_2.14 但是服务器是2.17_黑色地带(崛起)的博客-CSDN博客 安全狗 safedogwzApacheV3.5.exe 右键电脑右下角安全狗图标-->选择插件-->安装…

在win10上安装Docker desktop,并在docker中安装mysql

操作步骤: 安装docker 去 官网 下载安装软件;选择windows 2. 依次点击安装; 安装完成后无需登录,直接启动即可; 如果有提示需要更新wsl,执行以下命令更新: wsl --update wsl --status 查看状态 验证一下 适用命令:docker run hello-world 设置国内镜像 docker安装mysql…

不懂录音转文字转换器如何使用?来掌握这几个方法吧

作为一名忙碌的职场人士,我每天都要参加各种会议。我发现自己经常会错过会议的一些重要信息,利用录音记录又要费时间去听再转录,实在令我很头疼。直到我开始使用录音转文字这个工具,它简直像魔法一样。只要将需要转换的音频上传就…

建议收藏!独立站新手容易踩的5个坑,你中了吗?

接过很多独立站商户咨询,发现大家很容易踩几个坑,也是大家问的比较多的。 今天把印象最深的5个坑分享给大家,希望大家可以少踩坑,并且结合建议对以下几个方面进行优化,至少能保证你的独立站做到及格线上线&#xff01…