先說說我們常用的幾種方法,我就不列舉**了。網上都有,大家可以自己試試。
1.事務
開啟乙個事務,將多條語句執行,然後提交。有的資料庫限制sql個數1000.
2.多值插入語法
insert into table(字段) values(字段值),(字段值).
這種語法也是一種批量插入,經過資料庫(驅動)的優化.
但是sqlserver是個特殊,它的語法是insertall
insert all into table (字段) values(字段值)
insert table (字段) values(字段值)
insert table (字段) values(字段值)
3.專門的批量處理類
一般資料庫都有乙個批量類處理,我檢視了幾個例子,都是把datatable直接寫入了。
一般類名稱中帶有bulk字樣。也是優化過的
4.檔案匯入
很多資料庫支援csv,就單獨以csv格式檔案為準吧。
資料庫提供有自己的辦法,就當前說的幾類資料庫都有。
oracle是特殊的,其它幾種都是命令列,可以用執行sql的方式執行。但是oracle是工具命令列,也就是專門的乙個工具來支援(工具是sqlldr ),所以oracle需要完整的客戶端支援,至少是包含sqlldr.exe的客戶端。oracle使用程式設計操作時,需要用bat檔案或者啟動sqlldr.exe方式來操作。
5.引數化
直接sql引數化,引數化時設定行數。引數值採用陣列,但是每個欄位的值素組長度必須一樣,比如一次插入1000行,每個素組必須是1000長度。我知道oracle是支援的,其它資料庫未知,所以要自己嘗試,可能不通用。
尤其是第5種方法,我長期使用oracle,其餘幾種沒有,也不打算弄一堆資料庫測試,靠大家努力吧。
附錄轉換處理類
資料庫驅動
名稱說明
oracle
oracle.dataaccess
oraclebulkcopy
mysql
預設mysqlbulkloader
postgresql
預設沒有直接的類。資料庫連線類中有乙個方法beginbinaryimport
網上有乙個擴充套件bulk
sqlserver
預設sqlbulkcopy
附錄檔案匯入
資料庫語句
驅動說明
oracle
sqlldr dbuser/dbpass@dbservice control=users.ctl
預設mysql
load data local infile '/var/lib/mysql/pet.txt' into table tbl_pet
預設postgresql
copy mytable from '/myfile.csv' with csv header
預設sqlserver
bulk
insert employee
from 'f:\\mypublis\\testtoinsert.txt' --location with filename
with
fieldterminator = ',',
rowterminator = '\n'
預設
資料庫程式設計 批量插入資料
1.編寫簡單的批量資料插入,可用在效能測試時多資料的壓力測試,檢測網頁,或客戶端介面資料量較多時是否有異常現象,在測試過程中經常需要使用到這種方式,學會這個,以後簡單的插入批量資料就可以自己完成啦,不用再依賴開發了,let s go 2.先檢視需要進行批量插入資料的表結構,例如,乙個 本表,表結構如...
批量插入oracle資料庫
odp技術,引數可以為陣列 注意事項 1 時間處理 防止資料庫中有date型別的資料,不設定格式則會出現無效月份的情況,如 new oracledate 2011 08 26 17 18 19 oracleglobalization og oracleglobalization.getclienti...
DataTable批量插入資料庫
最近在將excel中的檔案匯入到資料庫中,用程式進行編寫,由於資料量較大所以速度很慢,後來採用了sqlbulkcopy類,解決了速度的問題,我就insert語句,sqldataadapter.update dataset,tablename sqlbulkcopy.writetoserver dat...