当前位置: 代码迷 >> 综合 >> Oracle 数据库表分区概念(Partition)
  详细解决方案

Oracle 数据库表分区概念(Partition)

热度:44   发布时间:2023-10-24 09:30:20.0

目录

    • 一、Oracle数据库表分区概念和理解
      • 表空间概念:
      • 分区表概念:
      • 什么时候使用分区表:
      • 表分区的优缺点
      • 示例
        • 按照范围分区:
        • 按照hash分区:

一、Oracle数据库表分区概念和理解

表空间概念:

表空间指的是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。
  通俗来讲,数据库(一套房子,可以有多个房间),表空间(房间),数据库文件(房间中的书架),表(书架上的书)。

分区表概念:

当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,即分区表,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。
Oracle 数据库表分区概念(Partition)

什么时候使用分区表:

1、表的大小超过2GB。
2、表中包含历史数据,新的数据被增加到新的分区中。

表分区的优缺点

优点:
1、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。
2、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;
3、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;
4、均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能。

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

示例

按照范围分区:

create table student(id number primary key,age number(3) not null
)
partition by range(id) (partition part_01 values less than(3000) tablespace tbl_space01,partition part_02 values less than(6000) tablespace tbl_space02,partition part_03 values less than(maxvalue) tablespace tbl_space03
);

按照hash分区:

create table student(id number primary key,age number(3) not null
)
partition by hash(id)(partition part_01 tablespace tbl_space01,partition part_02 tablespace tbl_space02,partition part_03 tablespace tbl_space03
);
  相关解决方案