海量資料處理_批量插入
大量資料插入效能優化:
1,通過使用如下選項,可能大幅度提高效能:
更改表屬性:
drop index
disable trigger
disable constraint
alter table t nologging(關於日誌,參考附錄)
處理過程:
append
parallel
batch commit
2.對於同一資料庫,並行查詢、插入:
alter session enable parallel dml;
insert /*+parallel(t1 8) */ into tab1 t1
select /*+parallel(t2 8) */ * from tab2 t2;
commit;
alter session disable parallel dml;
3.對於不同資料庫,可選方案如下:
3.1可移動表空間,速度最快
3.2使用外部表,因為匯出過程可以並行,無須匯入,速度很快(參考海量資料處理_使用外部表進行資料遷移)
3.3資料泵匯出、匯入,因為匯入、匯出過程都可以使用並行,速度很快
3.4通過database link複製,查詢和插入都可以並行,瓶頸在網路傳輸
3.5sqlplus copy,支援如下型別:CHAR,DATE,LONG,NUMBER,VARCHAR2
測試:
drop table t;
create table t
as
select cust_id,name_zh,name_en,mksg_id from customer where 1=2;
set copycommit 2;
set arraysize 5000;
copy from bocnet/bocnet@it30_22.188.20.97 -
insert t -
using SELECT cust_id,name_zh,name_en,mksg_id from customer;
附錄:
引用一下前人的結論:
(1)資料庫在歸檔模式下
當表模式為logging狀態時,無論是append模式還是no append模式,redo都會生成。
當表模式為nologging狀態時,只有append模式,不會生成redo.
(2)資料庫在非歸檔模式下
無論是在logging還是nologing的模式下,append的模式都不會生成redo,而noappend模式下都會生成redo。
(3)在Oracle內部還存在一個內部引數:_disable_logging 預設是false
通過更改為true可以讓Oracle在修改表中的記錄的時候完全不記錄redo,這個引數要慎用。平時,我們只作為效能測試用。
(4)force logging(強制日誌)模式:
alter database force logging來使得Oracle無論什麼操作都進行redo的寫入。
通過select force_logging from v$database可以看到當前資料庫強制日誌模式的狀態。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18922393/viewspace-696795/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 海量資料處理
- 海量資料處理2
- mybatis插入資料、批量插入資料MyBatis
- 正規表示式處理批量插入
- 海量資料的併發處理
- 使用MySqlBulkLoader批量插入資料MySql
- 海量資料處理利器 Roaring BitMap 原理介紹
- JDBC連線批量處理資料入庫JDBC
- Oracle批量插入資料insert all into用法Oracle
- 使用 【Ado.Net】 批量插入資料
- MySQL:JDBC批量插入資料的效率MySqlJDBC
- MyBatis Plus 批量資料插入功能,yyds!MyBatis
- 快手關於海量模型資料處理的實踐模型
- 超3萬億資料實時分析,JCHDB助力海量資料處理
- Jtti:怎樣正確處理Redis中的海量資料JttiRedis
- Laravel 批量插入(如果資料存在刪除原資料)Laravel
- 利用實體bean物件批量資料傳輸處理Bean物件
- 我的《海量資料處理與大資料技術實戰》出版啦!大資料
- 海量資料處理問題知識點複習手冊
- MyBatis中批量插入資料,多重forEach迴圈MyBatis
- 使用Mybatis批量插入大量資料的實踐MyBatis
- 使用csv批量匯入、匯出資料的需求處理
- mybatis+oracle 批次插入多條資料的處理方法MyBatisOracle
- SpringBatch批量處理策略SpringBAT
- 簡述高併發解決思路-如何處理海量資料(中)
- 羅強:騰訊新聞如何處理海量商業化資料?
- JDBC 批量插入資料優化, 使用 addBatch 和 executeBatchJDBC優化BAT
- N道大資料海量資訊處理 演算法面試集錦大資料演算法面試
- YOLO-V4 實現口罩識別(附加資料、資料批量處理程式)YOLO
- Python批量處理圖片Python
- Python資料處理(二):處理 Excel 資料PythonExcel
- [Django高階之批量插入資料、分頁器元件]Django元件
- 批量處理檔名稱(上)
- 資料處理
- 插入式註解處理器
- 從併發程式設計到分散式系統-如何處理海量資料(上)程式設計分散式
- 一套用來處理海量資料的軟體工具應運而生,這就是大資料!大資料
- React setState合併和批量處理React
- Linux下使用Ansible處理批量操作Linux