2011年9月1日 星期四

SQL- 利用BULK INSERT做大量匯入


大量匯入資料,可使用下面的方式,我測試79萬筆資料約18秒完成insert


 
BULK INSERT dbo.leads_tracking_log --table name
FROM 'd:\1234temp.csv'             --來源位置
WITH
(
BATCHSIZE = 10000,                 --批次處理:因為bulk還是會產生log,資料少還可以,當資料多時,會使log過大而整個死掉。
FIELDTERMINATOR = '\t',            --欄位分隔符號
ROWTERMINATOR = '\n',              --欄位換行符號
TABLOCK
)



Ps. BATCHSIZE,我試過用1000筆、10000筆、100000筆,最快是10000筆,
 很神奇,我猜可能是commit需要用掉比較多時間,若過多反而變成log檔過大吧!

沒有留言: