Oracle 表分区

前端之家收集整理的这篇文章主要介绍了Oracle 表分区前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


@H_502_2@

举个栗子:@H_502_2@


create table t(c1 number,c2 number)@H_502_2@

partition by range(c1)(@H_502_2@

partition w10 values less than(100000),@H_502_2@

partition w20 values less than(200000),@H_502_2@

partition w30 values less than(300000),@H_502_2@

partition w40 values less than(400000)@H_502_2@

)@H_502_2@


@H_502_2@

查询 SELECT * FROM T PARTITION(w10);@H_502_2@

SELECT * FROM T PARTITION(w20);@H_502_2@

同级只能存在一种分区。@H_502_2@

可以@H_502_2@

partition by range()@H_502_2@

subpartition by value()@H_502_2@


@H_502_2@

1、类型说明:range分区方式/@H_502_2@

List分区方式/@H_502_2@

Hash分区方式@H_502_2@


@H_502_2@

2、分区应用:@H_502_2@

一般一张表超过2G的大小,ORACLE是推荐使用分区表的,一个分区一般保证四十多万条数据就比较正常了@H_502_2@


@H_502_2@

3、常用视图:@H_502_2@

查询当前用户下有哪些是分区表:@H_502_2@

SELECT * FROM USER_PART_TABLES;@H_502_2@


@H_502_2@

查询当前用户下有哪些分区索引:@H_502_2@

SELECT * FROM USER_PART_INDEXES;@H_502_2@


@H_502_2@

4、维护操作:@H_502_2@

删除分区@H_502_2@

ALTER TABLE TABLE_PARTITION DROP PARTITION TAB_PARTOTION_03;@H_502_2@

如果是全局索引,因为全局索引的分区结构和表可以不一致,若不一致的情况下,会导致整个全局索引失效,在删除分区的时候,语句修改为:@H_502_2@

ALTER TABLE TABLE_PARTITION DROP PARTITION TAB_PARTOTION_03 UPDATE GLOBAL INDEXES;@H_502_2@


@H_502_2@

分区合并@H_502_2@


@H_502_2@

分隔分区@H_502_2@


@H_502_2@

修改分区名称@H_502_2@


@H_502_2@

交换分区@H_502_2@


@H_502_2@

清空分区数据@H_502_2@

ALTER TABLE <table_name> TRUNCATE PARTITION <partition_name>;@H_502_2@

ALTER TABLE <table_name> TRUNCATE subpartition <subpartition_name>;@H_502_2@


@H_502_2@

磁盘碎片压缩@H_502_2@

ALTER TABLE <table_name> ENABLE ROW MOVEMENT;@H_502_2@


@H_502_2@


@H_502_2@

update 分区字段时 ora-14402错误@H_502_2@

ORA-14402: 更新分区关键字列将导致分区的更改@H_502_2@


@H_502_2@

修改:alter table TD_DAT_YWFZ_XXXXXXXX_O_M enable row movement;@H_502_2@

再update 表 OK@H_502_2@

猜你在找的Oracle相关文章