【實驗】【PARTITION】RANGE分割槽表合併分割槽
1.建立測試用range分割槽表
sec@ora10g> create table t_partition_range (id number,name varchar2(50))
2 partition by range(id)(
3 partition t_range_p1 values less than (10) tablespace tbs_part01,
4 partition t_range_p2 values less than (20) tablespace tbs_part02,
5 partition t_range_p3 values less than (30) tablespace tbs_part03,
6 partition t_range_pmax values less than (maxvalue) tablespace tbs_part04);
Table created.
2.查詢分割槽情況
sec@ora10g> col TABLE_NAME for a20
sec@ora10g> col partition_name for a20
sec@ora10g> col HIGH_VALUE for a10
sec@ora10g> col TABLESPACE_NAME for a15
sec@ora10g> select table_name,partition_name,high_value,tablespace_name from user_tab_partitions where table_name='T_PARTITION_RANGE' order by partition_position;
TABLE_NAME PARTITION_NAME HIGH_VALUE TABLESPACE_NAME
-------------------- -------------------- ---------- ---------------
T_PARTITION_RANGE T_RANGE_P1 10 TBS_PART01
T_PARTITION_RANGE T_RANGE_P2 20 TBS_PART02
T_PARTITION_RANGE T_RANGE_P3 30 TBS_PART03
T_PARTITION_RANGE T_RANGE_PMAX MAXVALUE TBS_PART04
3.每個分割槽各插入一條資料
sec@ora10g> insert into T_PARTITION_RANGE values (9,'secooler01');
1 row created.
sec@ora10g> insert into T_PARTITION_RANGE values (19,'secooler02');
1 row created.
sec@ora10g> insert into T_PARTITION_RANGE values (29,'secooler03');
1 row created.
sec@ora10g> insert into T_PARTITION_RANGE values (39,'secooler04');
1 row created.
sec@ora10g> commit;
Commit complete.
4.確認每個分割槽包含的資料
sec@ora10g> select * from T_PARTITION_RANGE partition(T_RANGE_P1);
ID NAME
---------- --------------------------------------------------
9 secooler01
sec@ora10g> select * from T_PARTITION_RANGE partition(T_RANGE_P2);
ID NAME
---------- --------------------------------------------------
19 secooler02
sec@ora10g> select * from T_PARTITION_RANGE partition(T_RANGE_P3);
ID NAME
---------- --------------------------------------------------
29 secooler03
sec@ora10g> select * from T_PARTITION_RANGE partition(T_RANGE_PMAX);
ID NAME
---------- --------------------------------------------------
39 secooler04
5.開始合併分割槽--將前兩個分割槽t_range_p1,t_range_p2合併到新分割槽t_range_pmerge中
sec@ora10g> alter table t_partition_range merge partitions t_range_p1,t_range_p2 into partition t_range_pmerge tablespace tbs_part04;
Table altered.
6.再一次確認分割槽情況和每一個分割槽記憶體放的資料
sec@ora10g> select table_name,partition_name,high_value,tablespace_name from user_tab_partitions where table_name='T_PARTITION_RANGE' order by partition_position;
TABLE_NAME PARTITION_NAME HIGH_VALUE TABLESPACE_NAME
-------------------- -------------------- ---------- ---------------
T_PARTITION_RANGE T_RANGE_PMERGE 20 TBS_PART04
T_PARTITION_RANGE T_RANGE_P3 30 TBS_PART03
T_PARTITION_RANGE T_RANGE_PMAX MAXVALUE TBS_PART04
sec@ora10g> select * from t_partition_range partition(T_RANGE_PMERGE);
ID NAME
---------- --------------------------------------------------
9 secooler01
19 secooler02
sec@ora10g> select * from t_partition_range partition(T_RANGE_P3);
ID NAME
---------- --------------------------------------------------
29 secooler03
sec@ora10g> select * from t_partition_range partition(T_RANGE_PMAX);
ID NAME
---------- --------------------------------------------------
39 secooler04
7.OK,合併分割槽成功
8.向低一級別的分割槽合併是不被允許的(較大的值不能插入到較小值分割槽中)
sec@ora10g> alter table t_partition_range merge partitions t_range_p1,t_range_p2 into partition t_range_p1;
alter table t_partition_range merge partitions t_range_p1,t_range_p2 into partition t_range_p1 tablespace tbs_part04
*
ERROR at line 1:
ORA-14275: cannot reuse lower-bound partition as resulting partition
9.向高一級別的分割槽合併沒有問題
sec@ora10g> alter table t_partition_range merge partitions t_range_p1,t_range_p2 into partition t_range_p2;
Table altered.
-- The End --
sec@ora10g> create table t_partition_range (id number,name varchar2(50))
2 partition by range(id)(
3 partition t_range_p1 values less than (10) tablespace tbs_part01,
4 partition t_range_p2 values less than (20) tablespace tbs_part02,
5 partition t_range_p3 values less than (30) tablespace tbs_part03,
6 partition t_range_pmax values less than (maxvalue) tablespace tbs_part04);
Table created.
2.查詢分割槽情況
sec@ora10g> col TABLE_NAME for a20
sec@ora10g> col partition_name for a20
sec@ora10g> col HIGH_VALUE for a10
sec@ora10g> col TABLESPACE_NAME for a15
sec@ora10g> select table_name,partition_name,high_value,tablespace_name from user_tab_partitions where table_name='T_PARTITION_RANGE' order by partition_position;
TABLE_NAME PARTITION_NAME HIGH_VALUE TABLESPACE_NAME
-------------------- -------------------- ---------- ---------------
T_PARTITION_RANGE T_RANGE_P1 10 TBS_PART01
T_PARTITION_RANGE T_RANGE_P2 20 TBS_PART02
T_PARTITION_RANGE T_RANGE_P3 30 TBS_PART03
T_PARTITION_RANGE T_RANGE_PMAX MAXVALUE TBS_PART04
3.每個分割槽各插入一條資料
sec@ora10g> insert into T_PARTITION_RANGE values (9,'secooler01');
1 row created.
sec@ora10g> insert into T_PARTITION_RANGE values (19,'secooler02');
1 row created.
sec@ora10g> insert into T_PARTITION_RANGE values (29,'secooler03');
1 row created.
sec@ora10g> insert into T_PARTITION_RANGE values (39,'secooler04');
1 row created.
sec@ora10g> commit;
Commit complete.
4.確認每個分割槽包含的資料
sec@ora10g> select * from T_PARTITION_RANGE partition(T_RANGE_P1);
ID NAME
---------- --------------------------------------------------
9 secooler01
sec@ora10g> select * from T_PARTITION_RANGE partition(T_RANGE_P2);
ID NAME
---------- --------------------------------------------------
19 secooler02
sec@ora10g> select * from T_PARTITION_RANGE partition(T_RANGE_P3);
ID NAME
---------- --------------------------------------------------
29 secooler03
sec@ora10g> select * from T_PARTITION_RANGE partition(T_RANGE_PMAX);
ID NAME
---------- --------------------------------------------------
39 secooler04
5.開始合併分割槽--將前兩個分割槽t_range_p1,t_range_p2合併到新分割槽t_range_pmerge中
sec@ora10g> alter table t_partition_range merge partitions t_range_p1,t_range_p2 into partition t_range_pmerge tablespace tbs_part04;
Table altered.
6.再一次確認分割槽情況和每一個分割槽記憶體放的資料
sec@ora10g> select table_name,partition_name,high_value,tablespace_name from user_tab_partitions where table_name='T_PARTITION_RANGE' order by partition_position;
TABLE_NAME PARTITION_NAME HIGH_VALUE TABLESPACE_NAME
-------------------- -------------------- ---------- ---------------
T_PARTITION_RANGE T_RANGE_PMERGE 20 TBS_PART04
T_PARTITION_RANGE T_RANGE_P3 30 TBS_PART03
T_PARTITION_RANGE T_RANGE_PMAX MAXVALUE TBS_PART04
sec@ora10g> select * from t_partition_range partition(T_RANGE_PMERGE);
ID NAME
---------- --------------------------------------------------
9 secooler01
19 secooler02
sec@ora10g> select * from t_partition_range partition(T_RANGE_P3);
ID NAME
---------- --------------------------------------------------
29 secooler03
sec@ora10g> select * from t_partition_range partition(T_RANGE_PMAX);
ID NAME
---------- --------------------------------------------------
39 secooler04
7.OK,合併分割槽成功
8.向低一級別的分割槽合併是不被允許的(較大的值不能插入到較小值分割槽中)
sec@ora10g> alter table t_partition_range merge partitions t_range_p1,t_range_p2 into partition t_range_p1;
alter table t_partition_range merge partitions t_range_p1,t_range_p2 into partition t_range_p1 tablespace tbs_part04
*
ERROR at line 1:
ORA-14275: cannot reuse lower-bound partition as resulting partition
9.向高一級別的分割槽合併沒有問題
sec@ora10g> alter table t_partition_range merge partitions t_range_p1,t_range_p2 into partition t_range_p2;
Table altered.
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-609245/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分割槽Partition
- Oracle分割槽表基礎運維-07增加分割槽(6RANGE_RANGE)Oracle運維
- 分割槽partition知識點
- oracle分割槽表和分割槽表exchangeOracle
- win10怎麼合併分割槽_win10合併分割槽的方法Win10
- Oracle分割槽表基礎運維-07增加分割槽(4 RANGE_HASH)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(5RANGE_LIST)Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- oracle分割槽表和非分割槽表exchangeOracle
- mac分割槽合併APFS容器Mac
- 分割槽表-實戰
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- Spark學習——分割槽Partition數Spark
- 非分割槽錶轉換成分割槽表
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- Oracle查詢Interval partition分割槽表內資料Oracle
- PG的非分割槽表線上轉分割槽表
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- win10u盤分割槽怎麼合併 win10如何把U分割槽合併Win10
- Mysql表分割槽實現MySql
- Mysql表分割槽實操MySql
- Oracle Partition 分割槽詳細總結Oracle
- 分割槽函式Partition By的基本用法函式
- Kafka分割槽分配策略(Partition Assignment Strategy)Kafka
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- 【MYSQL】 分割槽表MySql
- HGDB的分割槽表實現SQL Server的分割槽檢視SQLServer
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- 移動分割槽表和分割槽索引的表空間索引
- Oracle分割槽表基礎運維-07增加分割槽(1範圍分割槽)Oracle運維
- 物化檢視分割槽實驗
- 【Linux】MBR磁碟分割槽表只能有四個分割槽?Linux
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- MySQL 分割槽表探索MySql
- Linux分割槽方案、分割槽建議Linux
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- 分割槽表之自動增加分割槽(11G)