Oracle 表分区详解(partition table)

文章目录

1 概述

1. 目的:提高大表的查询效率
2. 概念:将一个表划分为多个分区表,"分而治之"
3. 优缺点
   优点:
   (1) '改善查询性能': 分区对象的查询仅搜索自己关系的分区
   (2) '增强可用性'  : 如果某个分区出现故障,其它分区的数据仍然可用
   (3) '维护方便'    : 如果某个分区出现故障,仅修复该分区即可
   (4) '均衡I/O'     : 将不同的分区放置不同的磁盘,以均衡 I/O,改善整个系统性能
   缺点:
   (1) 已经存在的表无法直接转化为分区表 -- 不过有很多间接方法,如:重定义表
4. 适用情况
   (1) 表的大小超过 2GB

 
 
 

1.1 思维导图

在这里插入图片描述

2 分类

2.1 传统表分区

2.1.1 范围分区 range

情况1:数值范围分区

create table pt_range_test1(
  pid   number(10),
  pname varchar2(30)
) partition by range(pid)(
  partition p1 values less than(1000) tablespace tetstbs1,
  partition p2 values less than(2000) tablespace tetstbs2,
  partition p3 values less than(maxvalue) tablespace tetstbs3
) enable row movement;

 
 
 

插入数据:

insert into pt_range_test1 (pid, pname) values (1, '瑶瑶');
insert into pt_range_test1 (pid, pname) values (1500, '倩倩');
insert into pt_range_test1 (pid, pname) values (null, '优优');
commit;

 
 
 

查询数据:

select * from user_tab_partitions t;
select 'P1' 分区名, t.* from pt_range_test1 partition (p1) t union all
select 'P2' 分区名, t.* from pt_range_test1 partition (p2) t union all
select 'P3' 分区名, t.* from pt_range_test1 partition (p3) t

 
 
 

在这里插入图片描述

情况2:时间范围分区(同理)

create table pt_range_test2(
  pid         number(10),
  pname       varchar2(30),
  create_date date
) partition by range(create_date)(
  partition p1 values less than(to_date<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值