最近做短信群發項目有一個需求,需要客戶大批量(十萬級)導入數據.
開始是用insert單條數據,10萬條數據要20分鐘
后來發現可以用insert all 一條sql一次導入500條記錄,這樣10萬條數據只用了1.5分鐘,導入速度提高了近來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.所有列數不能超過1000,超過拋出異常
3.oracle 9i版本及以上版本支持此語法