最近做短信群發(fā)項目有一個需求,需要客戶大批量(十萬級)導(dǎo)入數(shù)據(jù).
開始是用insert單條數(shù)據(jù),10萬條數(shù)據(jù)要20分鐘
后來發(fā)現(xiàn)可以用insert all 一條sql一次導(dǎo)入500條記錄,這樣10萬條數(shù)據(jù)只用了1.5分鐘,導(dǎo)入速度提高了近來20倍
下面就使用insert all的心得體會記錄如下.
使用方法:
insert all into table_name(col_1,col_2) values (value_1,value_2)
into table_name(col_1,col_2) values (value_1,value_2)
into table_name(col_1,col_2) values (value_1,value_2)
.........................................................................
into table_name(col_1,col_2) values (value_1,value_2)
select 1 from dual
需要注意幾點:
1.此sql語法上要求后面有select,在本例中,select 1 from dual其實是沒有意義的,但必須加上,維護語法上的完整性.
2.所有列數(shù)不能超過1000,超過拋出異常
3.oracle 9i版本及以上版本支持此語法