用bulk 實現超快遷移審計表AUD$資料過程一個
之前給客戶寫了個清理審計表的方案,發現從aud$取數時採用了bulk,速度快了很多,分享下程式碼:
CREATE OR REPLACE PROCEDURE "SYS"."ARCHIVE_AUDIT"
as
v_begintime date;
v_curtime date;
v_size BINARY_FLOAT;
BEGIN
select sysdate into v_begintime from dual;
declare
CURSOR cur IS
SELECT/*+parallel(a,8) */ * FROM sys.aud$ a WHERE NTIMESTAMP# < v_begintime;
TYPE rec IS TABLE OF sys.aud$%ROWTYPE;
recs rec;
BEGIN
OPEN cur;
WHILE (TRUE) LOOP
FETCH cur BULK COLLECT
INTO recs LIMIT 10000;
FORALL i IN 1 .. recs.COUNT
INSERT INTO ORA_MON.DBA_AUDIT_TRAIL_HIST VALUES recs (i);
COMMIT;
select sysdate into v_curtime from dual;
EXIT WHEN cur%NOTFOUND or (v_curtime > v_begintime+2/24);
END LOOP;
execute immediate 'truncate table SYS.AUD$';
CLOSE cur;
end;
SELECT round(BYTES/1024/1024,0) INTO v_size FROM DBA_SEGMENTS WHERE SEGMENT_NAME='AUD$' AND OWNER='SYS';
if v_size>=50 then
begin
execute immediate 'truncate table SYS.AUD$';
exception
when others then
null;
end;
end if;
END;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29863023/viewspace-1976357/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用 NFS 的資料遷移實驗過程NFS
- Duplicate+NFS資料遷移實驗過程NFS
- 使用SQL SERVER儲存過程實現歷史資料遷移SQLServer儲存過程
- 資料遷移(1)——通過資料泵表結構批量遷移
- Oracle遷移資料庫過程記錄Oracle資料庫
- 達夢資料庫系統表空間資料檔案遷移過程資料庫
- 達夢資料庫資料檔案遷移過程資料庫
- 遷移審計目錄
- 【資料遷移】使用傳輸表空間遷移資料
- Mysql百萬級資料遷移,怎麼遷移?實戰過沒?MySql
- 安全警示錄---記一次oracle資料檔案遷移過程Oracle
- 利用PLSQL實現表空間的遷移(一)SQL
- 資料表內容遷移?
- 資料泵全庫遷移,排除一個大表【kingsql作品】SQL
- SSIS 開發篇-做一個簡單的SqlServer資料表資料遷移SQLServer
- 企業資訊系統在遷移過程中,資料遷移要注意什麼?
- 一次利用mv線上遷移資料、切換系統的過程
- 外部表的另一種用途 資料遷移
- 搬得進來,搬得出去!快來過一把資料遷移的“癮”
- 海量資料遷移之透過rowid切分大表
- 海量資料遷移之通過rowid切分大表
- 遷移過程中出現的open failed錯誤AI
- MySQL 8.0.20 MGR資料遷移過程以及注意事項MySql
- Oracle審計--AUD$佔用空間較大處理方案Oracle
- 用rman遷移資料庫資料庫
- 記一次 GitLab 的遷移過程Gitlab
- 海量資料遷移之傳輸表空間(一)
- 用傳輸表空間跨平臺遷移資料
- 一個簡單的MySQL資料遷移示例MySql
- kafka資料遷移實踐Kafka
- Mongo資料遷移實驗Go
- 一次用rman做資料遷移的實戰經歷
- 【實驗】利用可傳輸表空間技術實現資料的高效遷移
- 海量資料遷移之外部表切分
- 資料庫物件遷移表空間資料庫物件
- 把一個資料表中的資料匯入另一個表,觸發器和儲存過程的觸發器儲存過程
- 用prebuild mv 方法遷移資料Rebuild
- 快速實現地圖遷移資料視覺化地圖視覺化