Oracle_4_分区、分区索引

news/2024/7/7 23:22:39

数据切分:

    1、垂直:不同的表存放在不同的地方。

    2、水平:按照规则将同一个表中的数据分开存放。

 


一、range分区(范围分区)

创建表的时候,可以按照规则把一个表分成几个部分,分开存放。

结构:

create table 表名(字段信息)
    --选定字段进行分区
    partition by range(字段名)(
         --此区域为字段值小于上限1的数据
         partition  分区名1 values less than(上限1),
         --此区域为字段值大于上限1,小于上限2的数据
         partition  分区名2 values less than(上限2),
         --此区域为字段值大于上限2,小于上限3的数据
         partition  分区名3 values less than(上限3),
         --此区域为字段值大于上限3的数据
         partition  分区名4 values less than(maxvalue)
 );
--设置此表可以跨区进行数据更新,即数据更新后会自动移动所在分区,不设置则可能会因为规则而更新失败
alter table 表名 enable row movement;

例子:

--创建一个表,根据薪资分为几个区域储存
create table sales(
       pid number(10),
       salary number(10,2)
)partition by range(salary)(
         --此区域为: 1000>salary 的数据
         partition  p1 values less than(1000),
         --此区域为: 3000>salary>1000 的数据
         partition  p2 values less than(3000),
         --此区域为: 5000>salary>3000 的数据
         partition  p3 values less than(5000),
         --此区域为: salary>5000的数据
         partition  p4 values less than(maxvalue)
 );
alter table sales enable row movement;

分区情况查看:

--借助数据词典查看所有表分区情况
select * from user_tab_partitions;

分区数据查看:

select * from 表名 partition(分区名);

新建:

alter table 表名 add partition 分区名 values less than(上限)

删除:

alter table 表名 drop partition 分区名

 

二、间隔分区(interval)

range的升级,它能够通过指定时间间隔,实现自动分区。

结构:

create table 表名 (字段信息)
partition by range(字段名)
--分区规则:一个月一个区域 interval(numtoyminterval(
1,'MONTH')) (
   --第一个分区为指定日期之前的数据,此后的分区,按照规则自动创建 partition 分区名
values less than (TIMESTAMP'2014-02-01 00:00:00.00') )

其它分区:

  散列分区:hash分区,把数据平均,分配到各个区域中。

  列表分区:list分区,建立列表,进行相应的区域分配。

  复合分区.....


三、分区索引

在数据进行分区后,可以建立与之对应的分区索引。

1、local,为每个分区建立对应索引。

创建:

create index 索引名 on 表名(字段名)local

2、global,灵活为指定区域创建索引。

创建:

create index 索引名 on 表名(字段名) global
partition by range(字段名)(
   partition 分区名1 values less than(上限1)
   partition 分区名2 values less than(上限2)
   ....
   --必须要有maxvalue
   partition 分区名n values less than(maxvalue)

)

创建全局索引:

create index 索引名 on 表名(字段名) global

查看分区索引:

--借助数据词典
select * from user_ind_partitions;

 


http://lihuaxi.xjx100.cn/news/568844.html

相关文章

P2257 YY的GCD

求 \[\begin{aligned} & \sum^{n}_{i = 1} \sum^{m}_{j = 1} [ gcd(i, j) \in prime]\\ & \sum^{}_{k \in prime} \sum^{n}_{i = 1} \sum^{m}_{j = 1}[ gcd(i, j) = k]\\ \end{aligned} \]设 \[\begin{aligned} f(s) & = \sum^{n}_{i = 1} \sum^{m}_{j = 1}[ gcd(i…

webdav服务/ddns/域名/ssl证书设置

1.webdav服务 1.1.Windows iis自带的webdav组件 默认未启用,可以启用进行设置,使用了一下,在使用浏览器或Windows资源管理器内右键添加网络位置作为客户端时比较好用,但是当在移动端使用cx文件管理器app时,身份验证出现问题. 参考文章: 1.2. WebDAV Server (推荐) 项目地址:Git…

基于多保真方法来估计方差和全局敏感度指数分析(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 此代码实现了多保真方法来估计方差和全局敏感度指数。当模型具有不确定的输入时,模型输出也是不确定的。基于方差的…

网络爬虫入门到实战

简介 数据采集文章 开始 入门程序 环境准备 pip3 install beautifulsoup4 基本操作 from urllib.request import urlopen from bs4 import BeautifulSouphtml urlopen("http://www.baidu.com") # print(html.read()) (打印html完整内容) bsObj BeautifulSou…

【Vue2+Element ui通用后台】面包屑和tag功能

文章目录面包屑tag面包屑 Element ui 面包屑:显示当前页面的路径,快速返回之前的任意页面,完成效果如下: 我们之前把头部的代码封装到了 CommonHeader.vue 中,面包屑部分直接写死了一个首页,我们可以把官…

将powershell、cmd和vscode终端的编码永久修改成utf-8

powershell修改方法 1、以管理员身份打开powershe New-Item $PROFILE -ItemType File -Force 2、打开C盘,找到我的文档中的WindowsPowerShell文件夹 3、编辑这个ps1文件(默认是空的),加上以下代码 $OutputEncoding [console…

JSP ssh 桌面网站系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP ssh 桌面网站系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模 式开发。开发环境为TOMCAT7.0,My…

JavaScript刷LeetCode模板技巧篇(一)

虽然很多人都觉得前端算法弱,但其实 JavaScript 也可以刷题啊!最近两个月断断续续刷完了 leetcode 前 200 的 middle hard ,总结了一些刷题常用的模板代码。 常用函数 包括打印函数和一些数学函数。 const _max Math.max.bind(Math); co…