海量資料處理_批量插入
大量資料插入效能優化:
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
- 後端開發:【批量插入海量資料之Java插入MySql】解決方案後端JavaMySql
- 正規表示式處理批量插入
- 海量資料的併發處理
- 海量資料處理_表分割槽
- 海量資料處理:十道面試題與十個海量資料處理方法總結面試題
- oracle批量插入資料Oracle
- MyBatis 批量插入資料MyBatis
- 海量資料處理利器greenplum——初識
- 海量資料處理_資料泵分批資料遷移
- 海量資料處理_表結構變更
- 海量資料處理_刪除重複行
- 使用MySqlBulkLoader批量插入資料MySql
- 大表資料插入批量提交
- SQL語句批量插入資料SQL
- SqlBulkCopy 複製批量插入資料SQL
- 海量資料處理_使用外部表進行資料遷移
- JDBC連線批量處理資料入庫JDBC
- 大批量資料處理操作小記
- 快手關於海量模型資料處理的實踐模型
- 滴滴處理海量資料的祕訣是什麼?
- SQL Server 2005對海量資料的處理SQLServer
- 海量資料處理_表分割槽(線上重定義)
- 海量資料處理利器 Roaring BitMap 原理介紹
- 超3萬億資料實時分析,JCHDB助力海量資料處理
- MySQL:JDBC批量插入資料的效率MySqlJDBC
- MyBatis Plus 批量資料插入功能,yyds!MyBatis
- 大資料時代,野心勃勃的MongDB為你處理海量資料!大資料
- 關於海量資料處理分析的經驗總結
- Oracle批量插入資料insert all into用法Oracle
- 使用 【Ado.Net】 批量插入資料
- Redis從檔案中批量插入資料Redis
- MSSQL資料批量插入優化詳細SQL優化