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

news/2024/5/17 6:00:01

请添加图片描述

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

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

请添加图片描述

分区表 • Oracle版

  • 前言
  • 一、分区表
  • 1.什么是表分区
  • 2.创建分区表
    • 2.1 创建范围分区表
    • 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 范围-散列复合分区
  • 小结

前言

✅对于表分区这块内容,我们在MySQL方面已经有五篇内容了,大家可以去我的专栏SQL应知应会进行学习
🆗前面也有过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 基本语法

使用带PARTITION BY HASH子句的CREATE TABLE语句创建散列分区表,基本语法为:

CREATE TABLE table(...)
PARTITION BY HASH (column1[,column2,...])
[(PARTITION partition [TABLESPACE tablespace][,...])]|[PARTITION hash_partition_quantity STORE IN (tablespace1[,...])]
...
  • 通过PARTITION BY HASH 指定分区方法,其后的括号指定分区列
  • 使用PARTITION子句指定每个分区名称和其存储空间
  • 或者使用PARTITION子句指定分区数量,用STORE IN子句指定分区存储空间

2.3.2 示例1

  • 通过PARTITION BY HASH 指定分区方法,其后的括号指定分区列
  • 使用PARTITION子句指定每个分区名称和其存储空间

示例: 创建一个分区表,根据学号将学生信息均匀分布到ORCLTBS1和ORCLTBS2两个表空间中

CREATE TABLE student_hash(sno NUMBER(6) PRIMARY KEY,sname VARCHAR2(10)
)
PARTITION BY HASH(sno)
(PARTITOIN p1 TABLESPACE ORCLTBS1,PARTITOIN p1 TABLESPACE ORCLTBS2
);

2.3.2 示例2

  • 使用PARTITION子句指定分区数量,用STORE IN子句指定分区存储空间

示例: 创建一个分区表,根据学号将学生信息均匀分布到ORCLTBS1和ORCLTBS2两个表空间中

# 用STORE IN子句指定分区存储空间创建分区表
CREATE TABLE student_hash(sno NUMBER(6) PRIMARY KEY,sname VARCHAR2(10)
)
PARTITION BY HASH(sno)
PARTITION 2 STORE IN (ORCLTBS1,ORCLTBS2);

2.4 创建复合分区表

创建复合分区表时,首先在CREATE TABLE语句中使用PARTITION BY子句指定分区方法、分区列,然后使用SUBPARTITION BY子句指定子分区方法、子分区列、子分区数量及子分区的描。

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

  • 创建一个范围-列表复合分区表,将1980年1月1日前出生的男、女学生信息分别保存在ORCLTBS1和ORCLTBS2两个表空间中,1980年1月1日到1990年1月1日出生的男、女学生信息分别保存在ORCLTBS3和ORCLTBS4两个表空间中,其他学生信息保存在ORCLTBS5表空间中
CREATE TABLE student_range_list(sno NUMBER(6) PRIMARY KEY,sname VARCHAR2(10),sex VARCHAR(2) CHECK(sex in ('M','F')),sage NUMBER(4),birthday DATE
)
PARTITION BY RANGE(birthday)
SUBPARTITION BY LIST(sex)
(PARTITION p1 VALUES LESS THAN(TO_DATE('1980-1-1','YYYY-MM-DD'))(SUBPARTITION p1_sub1 VALUES('M') TABLESPACE ORCLTBS1,SUBPARTITION p1_sub2 VALUES('F') TABLESPACE ORCLTBS2        ),PARTITION p2 VALUES LESS THAN(TO_DATE('1990-1-1','YYYY-MM-DD'))(SUBPARTITION p2_sub1 VALUES('M') TABLESPACE ORCLTBS3,SUBPARTITION p2_sub2 VALUES('F') TABLESPACE ORCLTBS4        ),PARTITION p3 VALUES LESS THAN(MAXVALUE) TABLESPACE ORCLTBS5
)

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

  • 创建一个范围-散列复合分区表,将1980年1月1日前出生学生信息分别保存在ORCLTBS1和ORCLTBS2两个表空间中,1980年1月1日到1990年1月1日出生的学生信息分别保存在ORCLTBS3和ORCLTBS4两个表空间中,其他学生信息保存在ORCLTBS5表空间中
CREATE TABLE student_range_list(sno NUMBER(6) PRIMARY KEY,sname VARCHAR2(10),sage NUMBER(4),birthday DATE
)
PARTITION BY RANGE(birthday)
SUBPARTITION BY HASH(sage)
(PARTITION p1 VALUES LESS THAN(TO_DATE('1980-1-1','YYYY-MM-DD'))(SUBPARTITION p1_sub1 TABLESPACE ORCLTBS1,SUBPARTITION p1_sub2 TABLESPACE ORCLTBS2        ),PARTITION p2 VALUES LESS THAN(TO_DATE('1990-1-1','YYYY-MM-DD'))(SUBPARTITION p2_sub1 TABLESPACE ORCLTBS3,SUBPARTITION p2_sub2 TABLESPACE ORCLTBS4        ),PARTITION p3 VALUES LESS THAN(MAXVALUE) TABLESPACE ORCLTBS5
)

小结

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

请添加图片描述


http://www.mrgr.cn/p/84665426

相关文章

Oracle 迁移 Hive 过程中遇到的问题总结

前言 最近一个小伙伴在做从 Oracle 到 Hive 的业务迁移工作,在迁移过程中属实遇到了一些坑,今天就来汇总一下这些坑,避免以后大家其他业务迁移的时候再出现类似的问题,即使出现了也可以拿过来进行对照解决。 问题1:Distinct window functions are not supported: count(…

Python案例分析|使用Python图像处理库Pillow处理图像文件

本案例通过使用Python图像处理库Pillow,帮助大家进一步了解Python的基本概念:模块、对象、方法和函数的使用 使用Python语言解决实际问题时,往往需要使用由第三方开发的开源Python软件库。 本案例使用图像处理库Pillow中的模块、对象来处理…

uniapp小程序,根据小程序的环境版本,控制的显页面功能按钮的示隐藏

需求:根据小程序环境控制控制页面某个功能按钮的显示隐藏; 下面是官方文档和功能实现的相关代码: 实现上面需要,用到了uni.getAccountInfoSync(): uni.getAccountInfoSync() 是一个 Uniapp 提供的同步方法&#xff0c…

微服务如何治理

微服务远程调用可能有如下问题: 注册中心宕机; 服务提供者B有节点宕机; 服务消费者A和注册中心之间的网络不通; 服务提供者B和注册中心之间的网络不通; 服务消费者A和服务提供者B之间的网络不通; 服务提供者…

操作系统_进程与线程(三)

目录 3. 同步与互斥 3.1 同步与互斥的基本概念 3.1.1 临界资源 3.1.2 同步 3.1.3 互斥 3.2 实现临界区互斥的基本方法 3.2.1 软件实现方法 3.2.1.1 算法一:单标志法 3.2.1.2 算法二:双标志法先检查 3.2.1.3 算法三:双标志法后检查 …

mysql的json处理

写在前面 需要注意,5.7以上版本才支持,但如果是生产环境需要使用的话,尽量使用8.0版本,因为8.0版本对json处理做了比较大的性能优化。你你可以使用select version();来查看版本信息。 本文看下MySQL的json处理。在正式开始让我们先…

使用GGML和LangChain在CPU上运行量化的llama2

Meta AI 在本周二发布了最新一代开源大模型 Llama 2。对比于今年 2 月发布的 Llama 1,训练所用的 token 翻了一倍,已经达到了 2 万亿,对于使用大模型最重要的上下文长度限制,Llama 2 也翻了一倍。 在本文,我们将紧跟趋…

AI聊天GPT三步上篮!

1、是什么? CHATGPT是OpenAI开发的基于GPT(Generative Pre-trained Transformer)架构的聊天型人工智能模型。也就是你问它答,根据网络抓去训练 2、怎么用? 清晰表达自己诉求,因为它就是一个AI助手&#…

Eclipse memory analyzer 分析GC dump日志定位代码问题

1、问题描述: 使用命令 jstat -gcutil [pid] 查看JVM GC日志,发现生产系统频繁FullGC,大概几分钟一次,而且系统响应速度变慢很多 再使用 free -g 查看服务器内存全部占用,猜测是内存溢出了 2、导出dump日志 jmap -du…

【机器学习】分类算法 - KNN算法(K-近邻算法)KNeighborsClassifier

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:零基础快速入门人工智能《机器学习入门到精通》 K-近邻算法 1、什么是K-近邻算法?2、K-近邻算法API3、…

centos7安装mysql数据库详细教程及常见问题解决

mysql数据库详细安装步骤 1.在root身份下输入执行命令: yum -y update 2.检查是否已经安装MySQL,输入以下命令并执行: mysql -v 如出现-bash: mysql: command not found 则说明没有安装mysql 也可以输入rpm -qa | grep -i mysql 查看是否已…

Unity XML3——XML序列化

一、XML 序列化 ​ 序列化:把对象转化为可传输的字节序列过程称为序列化,就是把想要存储的内容转换为字节序列用于存储或传递 ​ 反序列化:把字节序列还原为对象的过程称为反序列化,就是把存储或收到的字节序列信息解析读取出来…

java+springboot+mysql疫情物资管理系统

项目介绍: 使用javaspringbootmysql开发的疫情物资管理系统,系统包含超级管理员,系统管理员、员工角色,功能如下: 超级管理员:管理员管理;部门管理;职位管理;员工管理&…

zore-shot,迁移学习和多模态学习

1.zore-shot 定义:在ZSL中,某一类别在训练样本中未出现,但是我们知道这个类别的特征,然后通过语料知识库,便可以将这个类别识别出来。概括来说,就是已知描述,对未知类别(未在训练集中…

Python 教程之标准库概览

概要 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,使用标准库我们可以让您轻松地完成各种任务。 以下是一些 Python3 标准库中的模块: 「os 模块」 os 模块提供了许多与操作系统交互的函数,例如创建、移动和删除文件和…

Debeizum 增量快照

在Debeizum1.6版本发布之后,成功推出了Incremental Snapshot(增量快照)的功能,同时取代了原有的实验性的Parallel Snapshot(并行快照)。在本篇博客中,我将介绍全新快照方式的原理,以…

系统架构设计师-软件架构设计(5)

目录 一、构件与中间件技术 1、软件复用 2、构件与中间件技术的概念 3、构件的复用 3.1 检索与提取构件 3.2 理解与评价构件 3.3 修改构件 3.4 组装构件 4、中间件 4.1 采用中间件技术的优点: 4.2 中间件的分类: 5、构件标准 5.1 CORBA(公共…

day43-Feedback Ui Design(反馈ui设计)

50 天学习 50 个项目 - HTMLCSS and JavaScript day43-Feedback Ui Design&#xff08;反馈ui设计&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport&q…

CPU密集型和IO密集型任务的权衡:如何找到最佳平衡点

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、CPU密集型与IO密集型3.1、CPU密集型3.2、I/O密…

【已解决】windows7添加打印机报错:加载Tcp Mib库时的错误,无法加载标准TCP/IP端口的向导页

windows7 添加打印机的时候&#xff0c;输入完打印机的IP地址后&#xff0c;点击下一步&#xff0c;报错&#xff1a; 加载Tcp Mib库时的错误&#xff0c;无法加载标准TCP/IP端口的向导页 解决办法&#xff1a; 复制以下的代码到新建文本文档.txt中&#xff0c;然后修改文本文…