SqlBulkCopy做大資料插入

2021-09-08 02:26:20 字數 835 閱讀 8267

在做大批量資料插入的時候,如果用insert into ... values (...)這種方式的話效率極低,這裡介紹兩種效能比較好的批量插入方法。

1. 使用sqlbulkcopy

private static long sqlbulkcopyinsert()

sqlbulkcopy sqlbulkcopy = new sqlbulkcopy(connectionstring);

sqlbulkcopy.destinationtablename = "passport";

sqlbulkcopy.batchsize = datatable.rows.count;

sqlconnection sqlconnection = new sqlconnection(connectionstring);

sqlconnection.open();

if (datatable!=null && datatable.rows.count!=0)

sqlbulkcopy.close();

sqlconnection.close();

stopwatch.stop();

return stopwatch.elapsedmilliseconds;

}另外批量匯入sql、mysql等資料是同樣的for迴圈,使用拼出來的sql或者使用引數的方式傳遞或者使用事務等不同方式的傳遞效率都不同。如果不使用sqlbulkcopy的方式的話,我測試下來做快遞是用一次事務來操作為最快。因為10000次的迴圈如果是每次提交,那麼都有鏈結和停止資料庫的操作,或者說他包含了1000次的小事務處理。如果外面就乙個事務的話效率肯定會高。

做大資料心得

1 sql嫻熟,這體現在etl的hive階段,自定義函式,分析函式,sql各種關聯寫 類dba傾向 2 hive sql優化要懂 3 mr流程要很熟悉,mr 優化,配置要知道,這在hive sql優化上有幫助,甚至有的hive寫法很消耗效率,啟動多個mr的時候,能自定義mr 來替代 4 大資料的et...

Python為什麼可以做大資料分析?

python很適合做大資料相關的分析,內建的c編譯的模組能應對常見的操作,個別極端的演算法建議用c重寫相關模組。python本身的特點更多的是高效率的開發和簡單的維護,速度交給c去吧,更多的問題其實出自寫 的人沒有更好的使用,而不是效率不夠高。比如排序,本來python有非常高效的內建c編譯的模組,...

基於Hadoop平台做大資料的幾種應用

1 自己寫mapreduce任務,雖然開發難度大一點,但執行效率比pig和hive高,像google的pagerank排名,機器學習 推薦,全盤掃瞄的etl都是這種方式的典型應用 2 用hive做分析,hive的一大好處就是能使用程式設計師熟悉的sql進行計算任務編寫,但某些運算效率不及m r 3 ...