oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...
天萃荷凈
oracle之數據導入,匯總開發DBA在向表中導入大量數據的案例,如:單線程向數據庫中插入數據,多線程向數據表中插入數據,使用sql loader數據表中導入數據案例
1.Oracle數據庫inset into select數據導入
為了使插入時少產生log記錄,要修改表,不能直接加nologging
ALTER TABLE EMP NOLOGGING;--
2.數據表單線程插入數據
INSERT /*+ APPEND */ INTO TEST
SELECT * FROM B.TEST;
--加上/*+ APPEND */要比不加這個速度快的多,因為這個直接導入到高水位之后,而且是直接塊對塊的插入,不用經過復雜的sql轉換
3.數據表多線程插入數據
--創建分區表
create table emp
(empno number,
ename varchar2(20))
partition by hash(empno)
(partition part1,
partition part2);
--執行多線程插入
alter session enable parallel dml;
insert /*+ PARALLEL(emp,2) */ into emp
select OBJECT_ID,TIMESTAMP from all_objects;
4.使用sql loader向數據表插入數據
上次服務器被攻擊,我導入日志文件使用的是c#程序導入到oracle數據庫中
這次使用sql loadr實現
control文件為
load data
infile data.log "str '\n'"
into table gj2
replace
fields terminated by ' '
TRAILING NULLCOLS
(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)
創建對應表
create table gj2(a1 varchar(10),a2 varchar2(10),
a3 varchar2(100),a4 varchar2(100),a5 varchar2(100),a6 varchar2(100),
a7 varchar2(200),a8 varchar2(100),a9 varchar2(100),a10 varchar2(100),
a11 varchar2(200),a12 varchar2(100),a13 varchar2(100), a14 varchar2(100));
執行sql loader
sqlldr b/b control=c:\abc.txt log=log.tx
這個非常方便,很快就把幾十萬條記錄導入到數據庫中了,而且直接提出a1和a2列進行分析就可以得到上次通過程序導入到數據庫,然后再通過orcale的正則表達式功能選擇出時間和ip地址,相比之下這個簡單多了,很好用。
原始數據:
2010-07-02 10:55:02 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 221.232.180.193 - 403 1 0
2010-07-02 10:55:04 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 121.35.96.46 - 403 1 0
2010-07-02 10:55:07 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 119.178.8.242 - 403 1 0
2010-07-02 10:55:13 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 124.236.72.63 - 403 1 0
2010-07-02 10:55:13 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 58.60.253.104 - 403 1 0
2010-07-02 10:55:14 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 120.10.3.64 - 403 1 0
2010-07-02 10:55:18 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 221.196.165.225 - 403 1 0
2010-07-02 10:55:21 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 116.16.159.224 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:21 W3SVC689347672 192.168.10.222 GET /anlewwwroot.zip - 80 - 120.84.23.2 Mozilla/4.0 404 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 122.226.148.190 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 122.226.148.190 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 121.204.33.120 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 202.30.113.101 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 58.101.51.214 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 114.41.216.107 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 58.101.51.214 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 114.41.216.107 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
使用sql loader處理后結果:
以前使用c#導入,oracle正則表達式處理日志為:
服務器遭攻擊,oracle分析日志
--------------------------------------ORACLE-DBA----------------------------------------
最權威、專業的Oracle案例資源匯總之學習筆記:Oracle表數據導入 DBA常用單線程插入 多線程插入 sql loader三種表數據導入案例
總結
以上是生活随笔為你收集整理的oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle中有类似split的方法么,
- 下一篇: Oracle openv目录,2015年