网站首页 > 数据库 / 正文
表分区有以下优点:
a、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。
b、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;
c、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;
d、均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能。
缺点:
分区表相关:已经存在的表没有方法直接转化为分区表。不过 Oracle 提供了在线重定义表的功能。操作步骤如下:
1、建立测试表
CREATE TABLE T(ID NUMBER ,TIME DATE);
INSERT INTO T SELECT ROWNUM,CREATED FROM ALL_OBJECTS;
建立主键
alter table t add constraint pk_t primary key(id);
2、建立中间表及分区
CREATE TABLE T_NEW
(
ID NUMBER PRIMARY KEY, TIME DATE
)
PARTITION BY RANGE (TIME)
(
PARTITION T_2017 VALUES LESS THAN (TO_DATE('2018-1-1', 'YYYY-MM-DD')),
PARTITION T_2018 VALUES LESS THAN (TO_DATE('2019-1-1', 'YYYY-MM-DD')),
PARTITION T_2019 VALUES LESS THAN (TO_DATE('2020-1-1', 'YYYY-MM-DD')),
PARTITION T_2020 VALUES LESS THAN (TO_DATE('2021-1-1', 'YYYY-MM-DD')),
PARTITION T_2021 VALUES LESS THAN (TO_DATE('2022-1-1', 'YYYY-MM-DD')),
PARTITION T_2022 VALUES LESS THAN (TO_DATE('2023-1-1', 'YYYY-MM-DD'))
);
3、在线重新定义操作
exec dbms_redefinition.start_redef_table('LC0019999','T','T_NEW');
select mview_name from user_mviews;
4、执行重定义后的分区数据同步
exec dbms_redefinition.sync_interim_table('LC0019999','T','T_NEW');
5、完成在线重定义操作
EXEC DBMS_REDEFINITION.FINISH_REDEF_TABLE('LC0019999','T','T_NEW');
6、查询表的分区
SELECT * FROM useR_TAB_PARTITIONS WHERE TABLE_NAME='T';
结束:对于已经存在的表进行表分区,按照以上步骤操作完全没有问题,这也是DBA在实际工作中经常处理的问题。
Tags:表分区 oracle
- 上一篇:ORACLE优化之SQL篇
- 下一篇:Oracle 分区索引类型简述
猜你喜欢
- 2024-11-26 oracle大数据量更新引发的死锁问题解决方法
- 2024-11-26 Oracle技术栈之"数据库服务器的swap分区" 配置参考
- 2024-11-26 运维实战:Linux系统扩展oracle数据库所在的分区
- 2024-11-26 千万级数据,如何做性能优化?分库分表、Oracle分区表?
- 2024-11-26 Oracle数据库性能优化指南:从SQL调优到表分区,全面提升
- 2024-11-26 oracle已有表的分表分区优化操作步骤(单表过大)
- 2024-11-26 Oracle 分区索引类型简述
- 2024-11-26 ORACLE优化之SQL篇
- 2024-11-26 Oracle数据库之索引、分区
- 2024-11-26 Oracle 11g下自动创建分区(包含已存在表的分区)