oracle表分区--范围分区

文章目录

  • oracle表分区
    • 分区的原因
    • 分区的优势
    • oracle表分区的作用
    • oracle表分区类型
      • 一、范围分区
      • 二、 创建分区表和使用:
        • 1、按照数值范围划分
        • 2、按照时间范围
        • 3、MAXVALUE
        • 2. 向现有表添加新的分区
        • 3、 分区维护和重新组织(合并/删除)


oracle表分区

oracle 11g 支持自动分区,不过得在创建表时就设置好分区。

分区的原因

单表的数据量如果太大,会影响到读写性能。我们可以使用分库分表来解决单表的性能问题。Oracle的分区表是将一张大表在物理上分成几张较小的表,从逻辑上来看仍然是一张完整的表。这样每次DML操作可以只考虑其中一张分区表。oracle建议单表大小超过2GB时就使用分区表。
分区功能能够将表、索引或索引组织表进一步细分为段,从而能够更精确地管理和访问这些数据库对象。这些数据库对象的段叫做分区。
分区表应用在大表更合适,至少要大于100万条的记录才可以考虑使用分区表。
现实中的场景:图书馆的图书分区

分区的优势

(IO速度、删除、查询、维护、安全)

由于Oracle数据库可以将分区指定为不同的表空间,而不同的表空间是可以指向不同的磁盘设备的,在很多时候,磁盘设备的I/O速度是系统进行数据操作的瓶颈,而分区并行,则起到了优化物理硬件资源,从而缩短了执行的时间的作用。

分区,就类似于我们将图书分类放到了不同的区间中,这个时候,我们就可以只针对其中的某一类图书进行操作,比如进行该类书籍的查询、上架、下架、甚至将该类图书付之一炬,这带来了两个特别大的优势,第一,我们无视其他分区的数据;第二,我们可以很方便的对本区的数据进行删除操作。

提高了特定的查询速度,比如我们现在只需要查找IT类图书的数量,因为我们能够在第一意识中,排除其他非IT类书籍,必然会提高查询的性能。

节约维护的成本,传统的维护操作,例如重建索引等,因为有锁机制的存在,是会影响到其他人的读取和更新删除操作的,但是由于有了分区,我们在维护IT类书籍的时候,就不会对其他分类的数据造成影响,这个时候,可以降低因为维护数据而对其他系统数据产生的各种影响。

从安全的角度上而言,我们将不同的分区放在不同的表空间当中,就类似于我们没有将所有的鸡蛋放到一个篮子里面,必然会带来安全方面的提升。

oracle表分区的作用

oracle表分区类型

在这里插入图片描述

一、范围分区

范围分区将数据基于范围映射到每一个分区,这个范围是你在创建分区时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期。当使用范围分区时,请考虑以下几个规则:
1)每一个分区都必须有一个VALUES LESS THEN子句,它指定了一个不包括在该分区中的上限值。分区键的任何值等于或者大于这个上限值的记录都会被加入到下一个高一些的分区中。
2)所有分区,除了第一个,都会有一个隐式的下限值,这个值就是此分区的前一个分区的上限值。
3)在最高的分区中,MAXVALUE被定义。MAXVALUE代表了一个不确定的值。这个值高于其它分区中的任何分区键的值,也可以理解为高于任何分区中指定的VALUE LESS THEN的值,同时包括空值。

在这里插入图片描述

二、 创建分区表和使用:

1、按照数值范围划分
--1.创建表

CREATE TABLE sales (
    sale_id NUMBER,
 
    amount NUMBER
)
-- 2.创建范围分区
PARTITION BY RANGE (sale_id) (
--范围分区根据分区的范围添加相应的数据到指定的范围分区之中
    PARTITION p1 VALUES LESS THAN (100),--范围<100
    PARTITION p2 VALUES LESS THAN (200),--范围100-200
    PARTITION p3 VALUES LESS THAN (300),-- 200-300
    PARTITION p4 VALUES LESS THAN (400)--300-400
);--VALUES LESS THAN限制的分区的范围上限和下限

-- 3.根据范围分区进行数据添加
insert into sales values(100,200)
insert into sales values(200,200);
insert into sales values(300,301);
insert into sales values(50,401);

-- 查看分区表:可以根据查看分区查询各范围分区相应的数据
select * from sales partition(p1);--partition 分区
select * from sales partition(p2);
select * from sales partition(p3);
--查看表
select * from sales 
2、按照时间范围
CREATE TABLE orders1 (
    order_id NUMBER,
    order_date DATE,
    amount NUMBER
)
PARTITION BY RANGE (order_date) (
    PARTITION p1 VALUES LESS THAN (TO_DATE('2022-01-01', 'YYYY-MM-DD')),
    PARTITION p2 VALUES LESS THAN (TO_DATE('2023-01-01', 'YYYY-MM-DD')),
    PARTITION p3 VALUES LESS THAN (TO_DATE('2024-01-01', 'YYYY-MM-DD'))

);



INSERT INTO orders1 (order_id, order_date, amount) VALUES (1, TO_DATE('2021-12-31', 'YYYY-MM-DD'), 100);
INSERT INTO orders1 (order_id, order_date, amount) VALUES (2, TO_DATE('2022-06-01', 'YYYY-MM-DD'), 200);


select *  from  orders1-- 查看表数据

select *  from  orders1 partition(p2)--查看表分区数据(指定分区)


3、MAXVALUE

CREATE TABLE RANGETABLE  
(   
  idd   INT PRIMARY KEY ,   
  iNAME VARCHAR(10),   
  grade INT    
)   
PARTITION  BY  RANGE (grade)   
(   
      PARTITION  p1 VALUES  LESS  THEN (1000) TABLESPACE  Part1_tb,   
      PARTITION  p2 VALUES  LESS  THEN (MAXVALUE) TABLESPACE  Part2_tb  --超过p1范围区的数据,都可以向新增到p2中
);  
  
--——在表上执行查询  
select * from RANGETABLE;  
  
--——在表分区上执行查询  
select * from RANGETABLE partition(p1);  
2. 向现有表添加新的分区

如果你已经有一个分区表,并且希望添加新的分区,可以使用ALTER TABLE … ADD PARTITION语句。例如,如果我们想在上面的RANGETABLE 表中添加一个新分区p3:

ALTER TABLE RANGETABLE  
 PARTITION  p3 VALUES  LESS  THEN (2000) 
3、 分区维护和重新组织(合并/删除)

随着时间的推移,你可能需要重新组织或合并分区以优化性能或管理空间。例如,合并两个分区:

ALTER TABLE employees_partitioned
MERGE PARTITIONS p1, p2 INTO PARTITION p_new;

或者,你可以删除不再需要的分区:

ALTER TABLE employees_partitioned
DROP PARTITION p_old;

在执行分区操作之前,确保有足够的备份和测试,因为错误的分区操作可能会导致数据丢失或查询性能下降。

分区类型(范围、列表、哈希等)和策略应该根据你的具体需求和数据特性来选择。例如,如果你知道某些列的唯一值非常多,那么使用列表分区可能更合适。

使用Oracle的自动分区功能(例如,自动范围分区)可以自动管理分区的创建,这可以减少手动干预的需要。

通过合理使用分区,你可以有效地管理和查询大型数据集,同时提高数据库的性能和可管理性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯(B组)-每日一题(求最大公约数最小公倍数)

题目&#xff1a; 代码展现&#xff1a; #include<iostream> using namespace std; int main() {int m,n,x,y;cin>>m>>n;//输入两个整数int b;bm%n;//取余数xm;//赋值yn;while(b)//当余数不为0的时候{xy;//辗转相除求最小公约数yb;bx%y;}cout<<y<&…

基于STM32的学习环境控制系统设计

&#x1f91e;&#x1f91e;大家好&#xff0c;这里是5132单片机毕设设计项目分享&#xff0c;今天给大家分享的是学习环境控制。 设备的详细功能见网盘中的文章《21、基于STM32的学习环境控制系统设计》&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1uWSZX2zbZwy9sY…

WPS接入DeepSeek模型

1.wps 下载安装 WPS-支持多人在线协作编辑Word、Excel和PPT文档_WPS官方网站 &#xff08;最好是安装最新的wps&#xff09; 2.offieceAi工具下载安装 软件下载 | OfficeAI助手 下载后安装下载下来的两个工具。安装路径可以自行修改 3.打开WPS,点击文件-》 选项-》信任中心 勾…

4. React 中的 CSS

用例中的干净的脚手架的创建可以参考另一篇文章&#xff1a;3.React 组件化开发React官方并没有给出在React中统一的样式风格&#xff1a; 由此&#xff0c;从普通的css&#xff0c;到css modules&#xff0c;再到css in js&#xff0c;有几十种不同的解决方案&#xff0c;上百…

Unity进阶教程AOI算法原理详解

最新课程《全栈双客户端(Unity/Cocos) TurnKey方案》更新了AOI专题&#xff0c;今天分享一下AOI算法的实现原理。 AOI的功能和作用 在MMORPG网路游戏当中&#xff0c;单服同时在线一般都会有几千人。当有个玩家执行一个操作&#xff0c;理想情况下要把玩家的操作广播同步给单…

w~大模型~合集30

我自己的原文哦~ https://blog.51cto.com/whaosoft/13284996 #VideoMamba 视频理解因大量时空冗余和复杂时空依赖&#xff0c;同时克服两个问题难度巨大&#xff0c;CNN 和 Transformer 及 Uniformer 都难以胜任&#xff0c;Mamba 是个好思路&#xff0c;让我们看看本文是…

【ThreeJS Basics 1-3】Hello ThreeJS,实现第一个场景

文章目录 环境创建一个项目安装依赖基础 Web 页面概念解释编写代码运行项目 环境 我的环境是 node version 22 创建一个项目 首先&#xff0c;新建一个空的文件夹&#xff0c;然后 npm init -y , 此时会快速生成好默认的 package.json 安装依赖 在新建的项目下用 npm 安装依…

Python----PyQt开发(PyQt基础,环境搭建,Pycharm中PyQttools工具配置,第一个PyQt程序)

一、QT与PyQT的概念和特点 1.1、QT QT是一个1991年由The Qt Company开发的跨平台C图形用户界面应用程序开发 框架&#xff0c;可构建高性能的桌面、移动及Web应用程序。也可用于开发非GUI程序&#xff0c;比如 控制台工具和服务器。Qt是面向对象的框架&#xff0c;使用特殊的代…

PostgreSQL 开发利器:Navicat 核心功能与资源攻略

近几年&#xff0c;&#x1f418; PostgreSQL 在全球数据库排名中表现优异。在 2025 年 2 月 DB-Engines 排名中 (如图)&#xff0c;PostgreSQL 稳居第四名&#xff0c;并逐渐逼近第三名的 Microsoft SQL Server&#xff0c;其评分和受欢迎度持续增长&#xff0c;成为开源数据库…

大模型数据集全面整理:444个数据集下载地址

本文针对Datasets for Large Language Models: A Comprehensive Survey 中的 444 个数据集&#xff08;涵盖8种语言类别和32个领域&#xff09;进行完整下载地址整理收集。 2024-02-28&#xff0c;由杨刘、曹家欢、刘崇宇、丁凯、金连文等作者编写&#xff0c;深入探讨了大型语…

【AI大模型】Ollama部署本地大模型DeepSeek-R1,交互界面Open-WebUI,RagFlow构建私有知识库

文章目录 DeepSeek介绍公司背景核心技术产品与服务应用场景优势与特点访问与体验各个DeepSeek-R系列模型的硬件需求和适用场景 Ollama主要特点优势应用场景安装和使用配置环境变量总结 安装open-webui下载和安装docker desktop配置镜像源安装open-webui运行和使用 RagFlow介绍主…

修改docker内容器中的某配置文件的命令

先找到配置文件config.php find / -name "config.php" 2>/dev/null 然后用vi编辑器修改配置文件 vi /var/www/config.php 最后就是vi的基本操作&#xff0c;根据具体需求使用&#xff1a; vi 有两种主要模式&#xff1a; 命令模式&#xff1a;进入 vi 后的默认…

23.[前端开发]Day23-移动端适配方案-考拉海购移动端项目

01-05 移动端适配rem方案 适配方案 – rem动态html的font-size rem的font-size尺寸 方式一&#xff1a;动态font-size-媒体查询 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…

数据中心网络监控

数据中心是全球协作的特定设备网络&#xff0c;用来在internet网络基础设施上传递、加速、展示、计算、存储数据信息。 对于任何利用IT基础设施的企业来说&#xff0c;数据中心都是运营的核心&#xff0c;它本质上为整个业务网络托管业务应用程序和存储空间。数据中心可以是任…

网络初识-

网络的相关概念 一、局域网和广域网 将各种计算机、外部设备等相互连接起来&#xff0c;实现在这个范围内数据通信和资源共享的计算机网络。它的覆盖范围通常在几百米到几公里之内。例如&#xff0c;一个小型企业的办公室&#xff0c;通过交换机将多台电脑连接在一起&#xf…

如何使用DHTMLX Scheduler的拖放功能,在 JS 日程安排日历中创建一组相同的事件

DHTMLX Scheduler 是一个全面的调度解决方案&#xff0c;涵盖了与规划事件相关的广泛需求。假设您在我们的 Scheduler 文档中找不到任何功能&#xff0c;并且希望在我们的 Scheduler 文档中看到您的项目。在这种情况下&#xff0c;很可能可以使用自定义解决方案来实现此类功能。…

haproxy+nginx负载均衡实验

准备三台虚拟机&#xff1a; HAProxy 服务器192.168.65.131Web 服务器 1192.168.65.132Web 服务器 2192.168.65.133 在 HAProxy 服务器&#xff08;192.168.65.131&#xff09;上操作&#xff1a; 安装 HAProxy&#xff1a; sudo yum install -y haproxy编辑 HAProxy 配置…

数据结构与算法之排序算法-插入排序

排序算法是数据结构与算法中最基本的算法之一&#xff0c;其作用就是将一些可以比较大小的数据进行有规律的排序&#xff0c;而想要实现这种排序就拥有很多种方法~ 那么我将通过几篇文章&#xff0c;将排序算法中各种算法细化的&#xff0c;详尽的为大家呈现出来&#xff1a; &…

cv2小练习

基础概念 帧率是指在单位时间内&#xff0c;显示的图像帧数的数量。它是衡量视频或动画流畅度的一个重要指标。帧率的单位通常是每秒帧数&#xff08;Frames Per Second&#xff0c;简称FPS&#xff09;。在数字视频和计算机图形领域&#xff0c;帧率是决定视频播放质量和流畅度…

在Mac arm架构终端中运行 corepack enable yarn 命令,安装yarn

文章目录 1. 什么是 Corepack&#xff1f;2. 运行 corepack enable yarn 的作用3. 如何运行 corepack enable yarn4. 可能遇到的问题及解决方法问题 1&#xff1a;corepack 命令未找到问题 2&#xff1a;Yarn 未正确安装问题 3&#xff1a;权限问题 5. 验证 Yarn 是否启用成功6…