ORACLE刪除分割槽

2022-08-04 21:45:21 字數 919 閱讀 8236

業務需求:定期刪除表中三個月之前的資料

說明:由於表採取乙個月乙個分割槽的設計,所以刪除三個月之前的資料也就是刪除三個月之前的分割槽。但需要注意的是刪除分割槽後全域性索引會失效,而本地local索引不會受到影響。

刪除分割槽的語法:

alter

table table_name truncate partition (partition_name);

假如表名是:t_goods_record_detail

需要刪除的分割槽分別是:par_g001,par_g002。

則刪除分割槽的sql:

alter

table t_goods_record_detail truncate partition par_g001;--

可以不帶括號

alter

table t_goods_record_detail truncate partition (par_g002);

一般表的主鍵id是全域性索引,所以在刪除分割槽後需要維護全域性索引,sql如下:

alter

index

索引名 rebuild online;

--假如索引是idx_goods_id,則sql語句為:

alter

index idx_goods_id rebuild online;

也可以在刪除分割槽的時候就維護索引,sql是:

alter

table t_goods_record_detail truncate partition (par_g001) update global index;

但是在程式中rebuild索引的時候一定在所有分割槽都刪除完之後再操作。因為如果表的資料量太大的話rebuild索引會非常耗時!!

Oracle分割槽表刪除分割槽資料時導致索引失效解決

問題描述 某錶資料量在1億左右,通過時間在建表時建立了分割槽,現在因為業務需要,需要刪除某個時間段內的資料,如果要是用delete去刪除這麼多的資料,我還要寫儲存過程,分批提交的這樣做,因此使用刪除分割槽資料的方式。就是這樣的一簡單的truncate partition 引發了後繼的業務故障。最終查...

oracle定期生成和刪除表分割槽

在專案中我們有個乙個表是秒資料表,這個表每天插入的資料量都有800多萬條,所以我們只儲存一段時間的資料,半個月之前的資料就會刪除掉,這樣當我們查詢當前即時的資料來繪製圖表的時候就會出現問題 oralce的高水位線的問題。在oracle裡,使用delete刪除資料以後,資料庫的儲存容量不會減少,而且使...

oracle 表無法修改刪除 無法刪除表分割槽

刪除分割槽語句 alter table dws db.dws ccrm dim attr spec drop partition day id 20200207 丟擲如下異常 failed execution error,return code 1 from org.apache.hadoop.hi...