首页 > 数据库 >Oracle_4_分区、分区索引

Oracle_4_分区、分区索引

时间:2023-01-04 19:00:35浏览次数:46  
标签:less -- 分区 partition 索引 values Oracle than

数据切分:

    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;

 

标签:less,--,分区,partition,索引,values,Oracle,than
From: https://www.cnblogs.com/lurenjia-bky/p/17025752.html

相关文章

  • informatica 861 迁移domain和资料库(oracle迁oracle)
    1:备份资料库  登录informatica控制台,选择资料库PC64-->Actions-->backupcontents,填写用户、密码、文件名称、备份说明2:备份服务器文件  安全起见整体备份......
  • 数组按照索引切割
    typedefstruct{unsignedchar*buffer;//待切割数据unsignedintbufferLen;//待切割数据长度unsignedintindex;//当前切割数据索引unsignedin......
  • PostGIS之空间索引
    1.概述PostGIS是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在SQL中运行空间查询PostGIS官网:AboutPostGIS|PostGISPostGIS官方教程:PostGIS......
  • oracle数据库配串指南(笔记)
    【1】PLSQL 的配置里先找到配置在那个目录中【2】 根据上面的目录找到 tnsnames.ora,把数据库串添加至文件后面中。【3】关闭重新进入,在database 中能看到该配置后,......
  • 百万并发场景中倒排索引与位图计算的实践
    作者:京东物流郎元辉背景Promise时效控单系统作为时效域的控制系统,在用户下单前、下单后等多个节点均提供服务,是用户下单黄金链路上的重要节点;控单系统主要逻辑是针对用......
  • 在 Oracle中清除过多非活动的会话
    概述本文讨论如何在oracle中清理非活动的会话解决方案1、检查数据库中存在的非活动会话--Checkinactiveandactivesessioncountselectstatus,count(1)fromv......
  • mysql索引简谈
                           mysql索引简谈 一、什么是索引就好比我们在看一本书的时候,有目录的话,我们可以快速定位到想看......
  • 【数据库】浅析Innodb的聚集索引与非聚集索引
    Mysql存储引擎之一的Innodb的索引,可以分为聚集索引与非聚集索引,这两种索引都是使用B+树组织的。本文不讲解什么是索引,对索引不了解的同学可以先移步到我的另外一篇文章【......
  • Oracle11g R2 RAC 数据库安装
    文档控制​修改记录​日期​作者​版本​修改记录​2022年12月01日​王xx​V1.0​新建​分发者​姓名​单位​职位​审阅记录​姓名​单位​职位​1安装目标与规划​两台......
  • 分区
    主分区与逻辑分区Linux下硬盘分区主要分为主分区(PrimaryPartion)和扩展分区(ExtensionPartion)两种,且主分区和扩展分区数目之和不能大于四个。主分区一经创建,格式化......