介绍
分区表作为 Oracle 三大组件之一,在 Oracle 数据库中,起着至关重要的作用。
分区表有什么优点?
- 提高性能:SQL 语句的 where 子句会过滤分区数据,只扫描需要查询的分区
- 方便管理:各个分区隔离管理,部分分区故障不影响其他分区数据,支持对单个分区进行数据加载、数据备份、数据恢复以及索引重建等操作
- 业务无感知:在数据库级完成分区,无需应用程序修改
- 归档历史数据:对历史数据进行分区化归档,无需 DML 操作
在运维开发过程中,发现有部分应用厂商在建表之初并未考虑到数据体量的问题,导致很多大表都没有建成分区表。在系统运行过程中,这些表的数据量一直在增大,当达到一定体量时,我们就需要考虑对其进行分区表转换,以提高数据库的性能。
普通表转换为分区表,Oracle 提供了以下几种常用方式:
- 数据泵
- CTAS
- 在线重定义
- ALTER TABLE…MODIFY…方式(12.2之后支持)
本文主要讲解使用数据泵的方式进行分区表转换。
环境准备
主机名 | IP地址 | 数据库版本 | 用户 | 表空间 | 表名 | 分区列 | 分区时长 |
---|---|---|---|---|---|---|---|
lucifer | 10.211.55.200 | 19C | par | par_tbs |