程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> 關於大批量數據高效插入方法

關於大批量數據高效插入方法

編輯:關於Access數據庫
沒事在這裡發一下關於數據庫大批量插入數據的效率對比,用Access和MSSQL,數值是在本機測試,根據不同的環境和配置,數值可能會有較大差別,大家看個對比就行了,別精打細算了。
使用Insert into方法插入
數據庫                插入數                花費時間(單位:ms)
Access                1000次                672
Access                10000次                5610

MSSQL                1000次                610
MSSQL                10000次                5579

速度基本差不多,同樣在解析語法上花費了很多時間

使用Addnew方法插入
數據庫                插入數                花費時間(單位:ms)
Access                1000次                187
Access                10000次                1172

MSSQL                1000次                828
MSSQL                10000次                6719

速度明顯有差距了,按道理說
MSSQL速度應該比較快的,可能是因為MSSQL的LOG造成的影響吧


使用事務進行插入的效率對比

使用事務進行Insert into方法插入
數據庫                插入數                花費時間(單位:ms)
Access                1000次                563
Access                10000次                4625

MSSQL                1000次                281
MSSQL                10000次                2183

使用事務的話,Access與MSSQL的速度都有明顯提高,但是MSSQL提高更突出

使用事務進行Addnew方法插入
數據庫                插入數                花費時間(單位:ms)
Access                1000次                188
Access                10000次                1187

MSSQL                1000次                469
MSSQL                10000次                3875

看得出來,Access在使用事務情況下,Insert into效率提高還是比較明顯,但是Addnew基本上變,原因可能是Addnew本身就是一種預解析模式,在整個插入過程中不需要語法解析,事務的批量提交優勢也就沒那麼大了

最後來測試一下MSSQL的存儲過程

不使用事務進行插入
數據庫                插入數                花費時間(單位:ms)
MSSQL                1000次                375
MSSQL                10000次                3547

使用事務進行插入
數據庫                插入數                花費時間(單位:ms)
MSSQL                1000次                187
MSSQL                10000次                1265

結果很明顯,使用MSSQL進行大數據量插入,最好使用事務功能,這樣效率提高一倍多。
使用Insert Into無論是ACCESS還是MSSQL效率都是一樣慢,但是MSSQL用事務的話,效率還可以接受,Access就不行了。
使用Addnew進行插入,Access最適合這種方式,無論使不使用事務,效率差距不大,但是MSSQL就不建議這種方式了,怎麼搞MSSQL在Addnew插入效率都很低。

綜合以上考慮,在插入效率最高的要求下,Access使用帶事務的Addnew插入,MSSQL則使用帶事務的存儲過程
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved