關于大批量數據高效插入方法
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
數據庫大批量插入數據的效率對比,用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則使用帶事務的存儲過程。 該文章在 2011/2/26 10:14:25 編輯過 |
關鍵字查詢
相關文章
正在查詢... |