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

news2024/12/26 21:32:32

请添加图片描述

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

本文收录于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 255
       storage(
               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.coloradmin.cn/o/846899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入大B行业,什么是最有力的敲门砖?

引言:2023上半年, 能扛过外部环境各种变化, 这样的科技公司就很不容易了。 【全球云观察 | 热点关注】在当前后疫情时代下,全球经济增长处于的低增长期,这对所有科技企业的发展带来了直接影响。 有业内人…

【ChatGPT 指令大全】怎么使用ChatGPT来辅助学习英语

在当今全球化的社会中,英语已成为一门世界性的语言,掌握良好的英语技能对个人和职业发展至关重要。而借助人工智能的力量,ChatGPT为学习者提供了一个有价值的工具,可以在学习过程中提供即时的帮助和反馈。在本文中,我们…

解决VScode远程服务器时opencv和matplotlib无法直接显示图像的问题

解决VScode远程服务器时opencv和matplotlib无法直接显示图像的问题 1、本方案默认本地已经安装了VScode与MobaXterm2、在服务器端3、在本地端安装MobaXterm4、测试5、opencv显示测试(测试过程中需保持MobaXterm开启的状态)6、 matplotlib显示测试&#x…

【Linux】操作系统与冯诺依曼体系——深度解析(软硬件层面)

​ 前言 大家好吖,欢迎来到 YY 滴 Linux系列 ,热烈欢迎! 本章主要内容面向接触过Linux的老铁,从软硬件层面向大家介绍操作系统与冯诺依曼体系, 主要内容含: 欢迎订阅 YY滴Linux专栏!更多干货持…

如何找到优质跨境电商补单资源

做跨境电商的卖家都知道,补单(测评)可以帮助他们的产品快速提升销量、评论,获得排名,打造爆款,但是现在市面上有大量的测评机构资源是烂资源,机刷,黑卡等一系列不法手段层出不穷&…

润和软件人才评定报名系统正式上线,培养openEuler专业生态人才

8月3日,江苏润和软件股份有限公司(以下简称“润和软件”)自主研发的人才评定报名系统正式上线运行,欢迎大家咨询报名! 2022年10月,润和软件申请并通过了openEuler开源社区理事会评审,成为openE…

条件语义相似度-CSTS

C-STS: Conditional Semantic Textual Similarity 语义文本相似度(STS):测量一对句子之间的相似程度。在本质上是一个模棱两可的任务,因为句子相似度取决于某一特定方面。 条件语义文本相似度(C-STS)&…

破解难题:精准评估研发工作量的艺术

引言 在当今的软件研发环境中,评估研发工作量已经成为了一个重要且不容忽视的话题。无论是研发团队的日常工作,还是项目的战略规划,都离不开对工作量的精准评估。然而,评估研发工作量并非易事,它涉及到多个方面的挑战…

MongoDB创建用户 、数据库、索引等基础操作

MongoDB的权限认证是相对来说比较复杂的,不同的库创建后需要创建用户来管理。 本机中的MongoDB是docker 启动的,所以先进入docker的镜像中 docker exec -it mongodb bash 这样就进入到了镜像MongoDB中,然后输入命令连接MongoDB数据库 注…

LLM - Transformer LLaMA2 结构分析与 LoRA 详解

目录 一.引言 二.图说 LLM 1.Transformer 结构 ◆ Input、Output Embedding ◆ PositionEmbedding ◆ Multi-Head-Attention ◆ ADD & Norm ◆ Feed Forward ◆ Linear & Softmax 2.不同 LLM 结构 ◆ Encoder-Only ◆ Encoder-Decoder ◆ Decoder-Only …

在线识别文字提取,好用的方法速速收下

在现代社会,识别文字提取已经成为了一项非常重要的技能。随着网络技术的不断发展,现在我们已经可以通过在线工具来识别文字并提取出所需要的信息。本文将分享一些好用的方法和注意事项,帮助大家更好地进行在线识别文字提取。 OCR技术 OCR技术…

来了!8月12日KCC成都站线下读书会活动诚邀您参加!

设计丨朱亿钦 相关阅读 | Related Reading 历史与今天的交融:KCC杭州 Meetup 圆满完成 KCC上海第二次活动读书会圆满举办! KCC成都首次非正式闭门会圆满成功 开源社简介 开源社成立于 2014 年,是由志愿贡献于开源事业的个人成员,依…

IPTV为什么要直连光猫

最佳答案 IPTV机顶盒之所以要与光猫连接,而且必须用网线,不能用无线网络,这是因为运营商的业务模式决定的。单纯从技术层面来说,运营商的IPTV业务有组播和OTT两种模式,目前OTT模式基本被淘汰。 所谓的OTT模式&#x…

大学python题库及答案解析,大学python程序设计题库

本篇文章给大家谈谈大学python题库及答案解析,以及python期末编程题及答案,希望对各位有所帮助,不要忘了收藏本站喔。 发表时间:2020-07-07 一、填空题(15分) 使用print()函数将多个字符串’How’、’are ’…

如何使Python Docker镜像安全、快速、小巧

一、说明 在微服务领域,拥有安全、高效和紧凑的 Docker 映像对于成功部署至关重要。本博客将探讨有助于构建此类映像的关键因素,包括不以 root 用户身份运行映像的重要性、在构建映像时更新和升级包、在编写 Dockerfile 指令时考虑 Docker 的层架构&…

嵌入式虚拟仿真实验教学平台之登录注册功能使用

登录注册功能的使用 本文将介绍嵌入式虚拟仿真实验教学平台的账号如何注册以及登录账号。 注册账号 1、首先谷歌或Edge等主浏览器中输入https://app.puliedu.com/网址,然后会跳转到登录页,如下所示: 2、点击上图中框中的新注册账号,跳转…

Java【抽象类和接口】(2)【浅拷贝、深拷贝、object类】

一、Clonable 接口和深拷贝 1.clone接口的使用 注意以下几个点: import javax.jws.soap.SOAPBinding;class Person implements Cloneable{public String name;public int age;public Person(String name, int age) {this.name name;this.age age;}Overridepublic…

无需跟踪管理,数据中心也能实时监测蓄电池状态!

当今数字化时代,数据的存储和管理已成为各行各业的核心要务。数据存储设备,如服务器、网络设备以及计算机系统,不仅仅是信息的仓库,更是组织和企业运营的支柱。 蓄电池作为关键的备份电源,在电力故障发生时起到了至关重…

Hum Brain Mapp:用于功能连接体指纹识别和认知状态解码的高精度机器学习技术

摘要 人脑是一个复杂的网络,由功能和解剖上相互连接的脑区组成。越来越多的研究表明,对脑网络的实证估计可能有助于发现疾病和认知状态的生物标志物。然而,实现这一目标的先决条件是脑网络还必须是个体的可靠标记。在这里,本研究…

CI/CD—K8S 基本理解与部署

1 K8S 是什么 Kubernetes 是一款容器的编排调度工具,来源于 Google 开源的 Brog 系统。Kubernetes简称K8S,是用8代替8个字符 “ubernete” 而成的缩写,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化…