全部博文(101)
分类: Oracle
2012-11-14 13:18:54
收縮表分區(coalesce partitions)
只是針對hash分區和複合分區的hash子分區有效,一個一個收縮。
SQL> select table_name,partition_name from user_tab_partitions where table_name='T_PARTITION_HASH';
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
T_PARTITION_HASH T_HASH_P4
T_PARTITION_HASH T_HASH_P5
T_PARTITION_HASH T_HASH_P1
T_PARTITION_HASH T_HASH_P2
T_PARTITION_HASH T_HASH_P3
alter table t_partition_hash coalesce partition;
收縮的只是分區,并不影響到數據。
刪除分區:
SQL> select table_name,partition_name from user_tab_partitions where table_name='T_PARTITION_LIST';
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
T_PARTITION_LIST T_LIST_P1
T_PARTITION_LIST T_LIST_P2
T_PARTITION_LIST T_LIST_P3
T_PARTITION_LIST T_LIST_P4
SQL> alter table t_partition_list drop partition t_list_p2;
Table altered
drop partition 時,該分區內存儲的數據也將同時刪除,例如:
insert into t_partition_list values(1,'a');
insert into t_partition_list values(11,'ab');
insert into t_partition_list values(21,'a');
commit;
查看數據:
SQL> select * from t_partition_list;
ID NAME
---------- --------------------------------------------------
1 a
21 a
11 ab
單獨查詢partition 3分區的數據:
SQL> select * from t_partition_list partition(t_list_p3);
ID NAME
---------- --------------------------------------------------
21 a
--刪除t_list_p3分區,數據也會被同時刪除
SQL> alter table t_partition_list drop partition t_list_p3;
Table altered
SQL> select * from t_partition_list;
ID NAME
---------- --------------------------------------------------
1 a
11 ab
如果只是刪除分區保留數據應該使用merge partition.