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

2021-09-25 21:31:38 字數 483 閱讀 7158

問題描述:

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

原因分析:

在使用truncate partition刪除分割槽資料時,需要加上update index引數。要不然會導致索引狀態為不可用。

正確刪除分割槽資料的語句為:

alter table test_partas truncate partition p1 update indexes; 

如果索引狀態為不可用,需要重新建立索引需要重新建立索引,要加online ,盡量減小對業務的衝擊

參考部落格:

ORACLE 分割槽表分割槽拆分

oracle建立分割槽表,分割槽規則為按照日期進行分割槽,由於投產日期未知,因此建議使用按照當前日期自動建立分割槽。僅需建立乙個max分割槽,然後通過split進行分割槽拆分,建立一年前的全部分割槽。示例 如下 create table wen dt decimal 8,0 id decimal 1...

oracle表分割槽設計 ORACLE 分割槽表的設計

分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...

oracle表分割槽設計 ORACLE分割槽表的設計

分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...