快捷搜索:  汽车  科技

oracle如何使用分区(史上最全的Oracle分区维护操作和查询命令总结)

oracle如何使用分区(史上最全的Oracle分区维护操作和查询命令总结)1、截断分区:截断某个分区是指删除某个分区中的数据,并不会删除分区,也不会删除其它分区中的数据。当表中即使只有一个分区时,也可以截断该分区。ALTER TABLE SALES MODIFY PARTITION P3 ADD SUBPARTITION P3SUB1 VALUES('COMPLETE'); 删除分区 1、删除了P3表分区:ALTER TABLE SALES DROP PARTITION P3; 2、删除了P4SUB1子分区:ALTER TABLE SALES DROP SUBPARTITION P4SUB1; 注意:如果删除的分区是表中唯一的分区,那么此分区将不能被删除,要想删除此分区,必须删除表。

概述

前面已经对Oracle数据库分区方面一些概念性东西做了一些介绍,所以今天就不多讲概念性东西了,主要分享一些表分区常用的维护命令。


添加分区

1、给SALES表添加一个P3分区

ALTER TABLE SALES ADD PARTITION P3 VALUES LESS THAN(TO_DATE('2003-06-01' 'YYYY-MM-DD'));

注意:以上添加的分区界限应该高于最后一个分区界限。

2、给SALES表的P3分区添加了一个P3SUB1子分区

ALTER TABLE SALES MODIFY PARTITION P3 ADD SUBPARTITION P3SUB1 VALUES('COMPLETE');


删除分区

1、删除了P3表分区:

ALTER TABLE SALES DROP PARTITION P3;

2、删除了P4SUB1子分区:

ALTER TABLE SALES DROP SUBPARTITION P4SUB1;

注意:如果删除的分区是表中唯一的分区,那么此分区将不能被删除,要想删除此分区,必须删除表。


截断分区

截断某个分区是指删除某个分区中的数据,并不会删除分区,也不会删除其它分区中的数据。当表中即使只有一个分区时,也可以截断该分区。

1、截断分区:

ALTER TABLE SALES TRUNCATE PARTITION P2;

2、截断子分区:

ALTER TABLE SALES TRUNCATE SUBPARTITION P2SUB2;


合并分区

合并分区是将相邻的分区合并成一个分区,结果分区将采用较高分区的界限,值得注意的是,不能将分区合并到界限较低的分区。

实现P1 P2分区的合并:

ALTER TABLE SALES MERGE PARTITIONS P1 P2 INTO PARTITION P2;


拆分分区

拆分分区将一个分区拆分两个新分区,拆分后原来分区不再存在。注意不能对HASH类型的分区进行拆分。

3、查询索引信息

select object_name object_type tablespace_name sum(value) from v$segment_statistics where statistic_name IN ('physical reads' 'physical write' 'logical reads') and object_type = 'INDEX' group by object_name object_type tablespace_name order by 4 desc;

oracle如何使用分区(史上最全的Oracle分区维护操作和查询命令总结)(1)

4、显示分区表信息

--显示数据库所有分区表的信息 select * from DBA_PART_TABLES --显示当前用户可访问的所有分区表信息 select * from ALL_PART_TABLES --显示当前用户所有分区表的信息 select * from USER_PART_TABLES

oracle如何使用分区(史上最全的Oracle分区维护操作和查询命令总结)(2)

5、显示表分区信息

-- 显示数据库所有分区表的详细分区信息 select * from DBA_TAB_PARTITIONS --显示当前用户可访问的所有分区表的详细分区信息: select * from ALL_TAB_PARTITIONS --显示当前用户所有分区表的详细分区信息: select * from USER_TAB_PARTITIONS

6、显示子分区信息

--显示子分区信息 显示数据库所有组合分区表的子分区信息: select * from DBA_TAB_SUBPARTITIONS --显示当前用户可访问的所有组合分区表的子分区信息: select * from ALL_TAB_SUBPARTITIONS --显示当前用户所有组合分区表的子分区信息: select * from USER_TAB_SUBPARTITIONS

oracle如何使用分区(史上最全的Oracle分区维护操作和查询命令总结)(3)

7、显示分区列

-- 显示数据库所有分区表的分区列信息: select * from DBA_PART_KEY_COLUMNS --显示当前用户可访问的所有分区表的分区列信息: select * from ALL_PART_KEY_COLUMNS --显示当前用户所有分区表的分区列信息: select * from USER_PART_KEY_COLUMNS

8、显示子分区列

--显示数据库所有分区表的子分区列信息: select * from DBA_SUBPART_KEY_COLUMNS --显示当前用户可访问的所有分区表的子分区列信息: select * from ALL_SUBPART_KEY_COLUMNS --显示当前用户所有分区表的子分区列信息: select * from USER_SUBPART_KEY_COLUMNS


Oracle分区大致的命令就这些了,大家有需要也可以自己测试一下。

后面会分享更多DBA方面内容,感兴趣的朋友可以关注下!

oracle如何使用分区(史上最全的Oracle分区维护操作和查询命令总结)(4)

猜您喜欢: