刪除大量Oracle資料方法總結
Oracle中刪除超過50w條記錄的資料,如果直接使用delete,效率就嚴重受到了影響。那麼首先我們需要了解對於這個表的資料,我們到底是全部刪除,還是部分刪除。這裡有三個關鍵字我們需要注意:truncate,delete,drop,他們之間的異同點可以參考這篇文章——truncate,delete,drop的異同點。
全部刪除,不保留資料結構就直接drop最好。如果是部分刪除,一般就這樣一些辦法:
1. 如果刪除的資料是大部分,分段提交刪除的資料。
create or replace procedure delete_table is i number(10); begin for loop delete emp where emp.id = x.id i:=i+1; if i>1000 then commit; i:=0; end if; end loop; exception when others then dbms_out.put_line(sqlcode); rollback; end delete_table; |
或者
–每500條資料提交一次DECLARE CNT NUMBER(10 I NUMBER(10); BEGIN SELECT COUNT(*) INTO CNT FROM ep_arrearage_bak WHERE TO_CHAR(DF_DATE,‘MM’)=’01′; FOR I IN 1..TRUNC(CNT/500)+1 LOOP DELETE FROM ep_arrearage_bak WHERE TO_CHAR(DF_DATE,‘MM’)=’01′ ANDROWNUM<=500; COMMIT; END LOOP; END; |
2、把要保留的資料放在一個臨時表裡,truncate table原表後再放回來;
create table t_back as drop table t; rename t_back to t; |
3. 專門使用一個大回滾段 ,比如定義:undo tablespace 2G
4、如果將方法1做一點修改,可以這麼做:
有條件的分步刪除資料表中的記錄
–建立測試表
–建立刪除表的儲存過程
–插入語句
–執行語句 |
5、如果確認將來不需要做恢復,改為非歸檔模式,刪除完改回來再做個備份。這個方法我沒有實驗過。
推薦使用第四種辦法。其實這些東西用google搜尋很多,但是都沒有註釋或者解釋。這裡做一個小小的總結。
相關推薦
刪除大量Oracle資料方法總結
Oracle中刪除超過50w條記錄的資料,如果直接使用delete,效率就嚴重受到了影響。那麼首先我們需要了解對於這個表的資料,我們到底是全部刪除,還是部分刪除。這裡有三個關鍵字我們需要注意:truncate,delete,drop,他們之間的異同點可以參考這篇文章——
總結一:Oracle 資料庫命令總結
一、日誌管理 1.強制日誌切換(forcing log switches) alter system switch logfile; 2.強制執行檢查點(forcing checkpoints) alter system checkpoint; 3.增加一個重做日誌組 (adding
java迴圈刪除List元素的方法總結
1、for迴圈 2、迭代器 3、過渡法 import java.util.*; /** * Created by HP on 2018/8/2. */ public class Test { public static void main(String[] args) {
js中刪除陣列元素的方法總結。
子曰:“學而時習之,不亦說乎?” 雖然我覺得這裡的習字應該理解為實踐練習,而不是複習,但是這裡權當我理解錯了吧o(╯□╰)o。 今天就整理一下js中刪除陣列元素的方法,包括原生API和自定義API。 原生API: 刪除陣列最後一個元素,arr.pop(),並返回該元素,對原陣
OpenCV遍歷和輸出Mat矩陣中資料方法總結
一、Mat中影象畫素的訪問方式 1.ptr操作和指標-高效的方式 這種方式基於.ptr的操作,也是比較推薦的遍歷影象的方式。 1 2 3 4
Linq 語法/List列表、陣列處理資料方法總結(Chinar)
Linq List泛型資料陣列資料處理用法歸類 本文提供全流程,中文翻譯。 Chinar 堅持將簡單的生活方式,帶給世人!(擁有更好的閱讀體驗 —— 高解析度使用者請根據需求調整網頁縮放比例)
Vue2.0-元件間通訊、元件間傳遞資料方法總結(帶例子)
元件間通訊-傳遞資料 父元件給子元件傳遞資料,子元件需要設定props來宣告自己的預期資料,如果傳遞的資料有‘-’,子元件要用小駝峰形式接受: <div id="app">
oracle 高水位線詳解(刪除大量資料後續處理)
一、oracle 高水位線詳解 一、什麼是水線(High Water Mark)? 所有的oracle段(segments,在此,為了理解方便,建議把segment作為表的一個同義詞) 都有一個在段內容納資料的上限,我們把這個上限稱為"high water mark"或HWM。這個HWM是一個標記,
Oracle生成大量測試資料的方法
Oracle生成一百萬測試資料的方法如下: 方法一:建立一個表,並同時新增1000000條資料,程式碼: create table TestTable as select rownum as id, to_char(sy
Oracle批量、大量Update方法總結
(1)主從兩個表,主表Student,有欄位id、name、sex,從表Boy,有欄位id、name,主從表同一物件id相同 (2)從表Boy的name屬性被業務修改,定時批量處理主表,以維持主表name屬性與從表一致 二、表結構: 1、主表 Student
總結刪除檔案或資料夾的7種方法-JAVA IO基礎總結第4篇
![](https://img2020.cnblogs.com/other/1815316/202009/1815316-20200901144138715-236578077.png) 本文是Java IO總結系列篇的第4篇,前篇的訪問地址如下: * [總結java中建立並寫檔案的5種方式-JAVA IO
[Oracle] 獲取運行計劃的各方法總結
mit statistic 另一個 waiting 長時間 trac process one ext 總的結論: 一.獲取運行計劃的6種方法(具體步驟已經在每一個樣例的開頭凝視部分說明了): 1. explain plan for獲取; 2. set aut
oracle下正確刪除表空間的方法
oracle tablespace Oracle因為本身的多重驗證機制所有在刪除表空間時不像MySQL中刪除database一樣,可以通過外部的刪除直接刪除掉database文件夾就可以刪除掉database,當然這兩者是2種不同的東西,在此僅用於舉例說明。在Oracle中表空間相當於系統中的硬
JAVA中循環刪除list中元素的方法總結
tor 循環 toolbar i++ 使用 修改 log span .get 印象中循環刪除list中的元素使用for循環的方式是有問題的,但是可以使用增強的for循環,然後今天在使用時發現報錯了,然後去科普了一下,再然後發現這是一個誤區。下面就來講一講。。伸手黨可直接跳
Java循環中刪除list中元素方法的總結
bar del mov als lis remove for for循環 技術 JAVA中循環遍歷list有三種方式for循環、增強for循環(也就是常說的foreach循環)、iterator遍歷。 1、for循環遍歷list for(int i=0;i<li
Oracle字段增刪改方法總結
不兼容 name varchar2 rim 增刪改 HA table del alter 一、修改字段的語法:alter table tablename modify (字段名 類型 [default value][null/not null],….);有一個表名為tb,字
UML實踐經典教程(適合之前已經看過大量資料作為總結復習看)
join wid custom 作用 延伸 mmu 系列 http oob UML全名為:Unified Modeling Language。是程序語言面向對象之後大家認可的一種設計“圖紙”,往往在之前的使用過程中大家都覺得沒什麽必要投入學習也能看懂。這就是這類圖的優勢。
python 原生列表刪除元素方法總結
inf ima 技術 image rem move 方法 .com pytho 一、列表方法remove(),按值刪除,刪除首個符合的元素 二、列表方法pop(),按索引刪除,默認刪除最後一個元素 三、del函數,刪除
JAVA中循環刪除list中元素的方法總結(跳格刪除問題解決)(轉)
今天 src log 觸發 導致 spi als exceptio spa 印象中循環刪除list中的元素使用for循環的方式是有問題的,但是可以使用增強的for循環,然後今天在使用時發現報錯了,然後去科普了一下,再然後發現這是一個誤區。下面就來講一講。。伸手黨可直接跳至
javascript資料結構----關於陣列的方法總結
1.檢測陣列 對於一個網頁,或者一個全域性作用域而言,使用 instanceof 操作符就能到到滿意的結果: if (value instanceof Array){ //如果是陣列就執行某些操作 } instanceof 操作符的問題在於,他假定只有一個全域性執行環境。如果網頁中包含多