【學習筆記】分割槽表和分割槽索引——分割槽表的其他管理(三)
2、收縮表分割槽(coalesce partitions)
收縮表分割槽僅適用於 hash 分割槽或複合分割槽的 hash 子分割槽,執行之後會自動收縮當前的表分割槽;但是對於分割槽表
如果只有一個分割槽,則執行收縮操作會報錯。
語法:alter table tbname coalesce partition;
注意:收縮的只是分割槽,並不影響資料;但是視被收縮分割槽中資料的多少,收縮表分割槽也會涉及到IO操作;
如果執行時沒有指定 update indexes 子句,收縮過程中有資料改動的分割槽其 local 和 global 索引都會失效。
3、刪除表分割槽(drop partition)
除 hash 分割槽和 hash 子分割槽外,其他的分割槽格式都支援刪除表分割槽操作。
語法:
刪除分割槽: alter table tbname drop partition partition_name;
刪除子分割槽:alter table tbname drop subpartition subpartition_name;
注意:刪除表分割槽會將資料一起刪除,所以速度非常迅速;如果執行時沒有指定 update indexes 子句,會導致global
索引失效;由於刪除分割槽時對應索引分割槽會被同時刪除,但其他分割槽 local 索引不受影響因此也不會失效。
4、交換表分割槽(exchange partitions)
交換表分割槽適用於所有分割槽格式,即可以將資料從分割槽表遷移至非分割槽表,也可以從非分割槽表遷移至分割槽表,或者從
hash 分割槽到 range 分割槽等。
語法:
alter table tbname1 exchange partition/subpartition ptname1 with table tbname2 [partition/subpartition ptname2];
5、合併表分割槽(merge partitions)
合併分割槽適用於除 hash 之外的其他所有分割槽形式(hash 分割槽有 coalesce partition)
注意要合併的兩個分割槽必須是連續的,這點是由分割槽本身的特性所決定的。合併後的分割槽儲存屬性可以繼承表的儲存屬性
也可以自定義。合併表分割槽不會丟失資料。另外 merge 分割槽操作視移動資料量,可能涉及到io操作。
語法:alter table tbname merge partitions/subpartitions pt1,pt2 into partition/subpartition pt3;
6、拆分表分割槽(split partition)
將一個分割槽拆分成兩個。
語法:
range:alter table tbname split partition ptname at (value) into (partition newpt1 tbs_clause,partition newpt2 tbs_clause);
list:alter table tbname split partition ptname values (v1,v2...vn) into (partition newpt1 tbs_clause,partition newpt2 tbs_clause);
舊分割槽中符合新定義值的記錄會儲存到指定的第一個分割槽中,其他的記錄儲存到第二個分割槽中。
7、修改 list 表分割槽-add values
僅適用於 list 分割槽或 list 子分割槽,用來增加指定分割槽的 value 值。
語法:alter table tbname modify partition/subpartition ptname add values (v1,v2,v3,...vn);
注意:要新增的新 value 值不能存在於當前任何分割槽中;增加新的列表值不影響原有記錄,對索引沒有影響。
8、修改 list 表分割槽-drop values
僅適用於 list 分割槽或 list 子分割槽。用來刪除指定分割槽的 value 值。
語法:alter table tbname modify partition/subpartition ptname drop values (v1,v2,v3,...vn);
注意:刪除 list 分割槽 value 列值的時候,必須確保當前分割槽存在指定的 value 值;要保證修改 list 表分割槽時該分割槽沒有值。
9、截斷分割槽(truncate partition)
如果該表有外來鍵約束,則只能用 delete ... cascade 或先將外來鍵 disable 然後再 truncate。在不指定 update indexes
情況下,truncate partition 也會使 global 或 local 索引失效。
語法:
alter table tbname truncate partition/subpartition [sub]partition_name;
10、移動表分割槽(move partition)
移動表分割槽,比如可以修改分割槽所在表空間等等。如果沒有指定 update indexes ,被移動分割槽所在 local 或 global 索引會失效。
語法:
alter table tbname move partition/subpartition ptname tablespace tablespace_name;
11、重新命名錶分割槽(rename partition)
語法:
alter table tbname rename partition/subpartition ptname to newptname;
12、修改表分割槽預設屬性(modify default attribute)
修改表或表中分割槽的儲存引數,對當前表或分割槽的儲存引數沒有影響,只有修改過後,再新增分割槽時不指定新分割槽的情況下,
新分割槽預設是修改後的預設儲存引數。
兩種方法:
修改表屬性:alter table tbname modify default attributes tablespace tablespacename;
修改分割槽屬性:alter table ptname modify default attributes for partition/subpartition ptname tablespace tablespacename;
13、修改表分割槽當前屬性(modify partition)
該命令修改的不是預設屬性,而是分割槽當前的屬性,修改即生效,但是不能修改所在表空間。
14、修改子分割槽模板(set subpartition template)
修改子分割槽模板不會改變當前分割槽結構,只有當再增加、合併分割槽且未顯示指定子分割槽儲存引數的時候才有效。
語法:
alter table tbname set subpartition template(...);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24496749/viewspace-1038001/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 移動分割槽表和分割槽索引的表空間索引
- oracle分割槽表和分割槽表exchangeOracle
- oracle分割槽表和非分割槽表exchangeOracle
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- PG的非分割槽表線上轉分割槽表
- hive學習筆記之四:分割槽表Hive筆記
- 增加表分割槽時,為local分割槽索引指定不同表空間的方法索引
- 非分割槽錶轉換成分割槽表
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- 【MYSQL】 分割槽表MySql
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(1範圍分割槽)Oracle運維
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- 【Linux】MBR磁碟分割槽表只能有四個分割槽?Linux
- MySQL 分割槽表探索MySql
- 分割槽表-實戰
- HGDB的分割槽表實現SQL Server的分割槽檢視SQLServer
- oracle 線上重新定義,普通表改變分割槽表,分割槽表可以更改型別、分割槽欄位等Oracle型別
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- 分割槽表之自動增加分割槽(11G)
- SQL Server大分割槽表沒有空分割槽的情況下如何擴充套件分割槽的方法SQLServer套件
- Oracle分割槽表基礎運維-01分割槽表分類Oracle運維
- 非分割槽錶轉換成分割槽表以及注意事項
- SQL SERVER之分割槽表SQLServer
- ORACLE分割槽表梳理系列Oracle
- Spark操作Hive分割槽表SparkHive
- OceaBase 分割槽表建立技巧
- Mysql表分割槽實現MySql
- mysql 進行表分割槽MySql
- Mysql表分割槽實操MySql
- PostgreSQL:傳統分割槽表SQL
- PostgreSQL:內建分割槽表SQL
- MySQL資料表分割槽手記MySql