Oracle分区表

Oracle分区表主要用于大型数据库,提高查询性能和维护便利性。其优点包括改善查询速度、增强可用性和便于维护。分区类型包括RANGE(按范围)、LIST(按列表)、HASH(散列)和引用及组合分区。RANGE根据值范围分配数据,LIST按预设值列表分区,HASH利用散列算法均匀分布数据,引用分区使子表跟随父表分区,组合分区结合多种方式灵活分区。分区管理方法与MySQL相似。
摘要由CSDN通过智能技术生成

一、使用场景

1、表的大小超过2GB。

2、 表中包含历史数据,新的数据被增加到新的分区中。

二、 优缺点

优点:

1、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度;

2、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;

3、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;

4、均衡I/O:可以把不同的分区映射到不同磁盘以平衡I/O,改善整个系统性能。

缺点:

分区表相关:已经存在的表没有方法可以直接转化为分区表。不过 Oracle 提供了在线重定义表的功能。

三、相关视图

1、 显示分区表信息

DBA_PART_TABLES

2、 显示表分区信息 显示数据库所有分区表的详细分区信息

DBA_TAB_PARTITIONS

3、 显示子分区信息 显示数据库所有组合分区表的子分区信息

DBA_TAB_SUBPARTITIONS

4、 显示分区列 显示数据库所有分区表的分区列信息

DBA_PART_KEY_COLUMNS

5、 显示子分区列 显示数据库所有分区表的子分区列信息

DBA_SUBPART_KEY_COLUMNS

四、分区表的不同类型

4.1 RANGE分区表

根据指定值的范围分区,每一个分区都必须有一个VALUES LESS THEN子句,指定一个不包括在该分区中的上限值,分区键的任何值等于或者大于这个上限值的记录都会被加入到下一个高一些的分区中。

# 使用时间列来做分区列
create table part_range_t1(
id number,
name varchar2(20),
birthday date)
partition by range(birthday)(
        partition p1 values less than(to_date('2001-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS')),
        partition p2 values less than(to_date('2002-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS')),
        partition p3 values less than(to_date('2003-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS'))
)

在这里插入图片描述

# 查询分区表的信息
select table_owner,table_name,partition_name,tablespace_name from dba_tab_partitions where table_name = 'PART_RANGE_T1';

在这里插入图片描述

# 查询分区类型
select table_name,partitioning_type from dba_part_tables where table_name = 'PART_RANGE_T1';

在这里插入图片描述

# 使用数字列做为分区列
create table p_t3(
n number,
name varchar2(20))
partition by range(n)(
partition p1 values less than(1000),
partition p2 values less than(10000),
partition p3 values less than(maxvalu
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值