在設計軟件的過程中,往往會遇到批量的添加數據,比如導入excel,直接在DataGridView控件中添加數據再保存到數據庫等等。
而我們的第一辦法往往是使用for或者foreach循環來一條條讀取并插入數據庫,雖然說這樣沒有什么問題,但是效率卻很低,經過我們測試發現在局域網中,1萬條數據要花費3分鐘左右的時間才能走完。這對于強調軟件效率的我們來說是不能接受的。那么應該如何優化呢?
我們又想到了另一種辦法,即"Insert into TableName Values(' ',' ',' '),Values(' ',' ',' ')",這種方法在一定程度上提高不少的效率,但是這種方法有幾個弊端。比如說,在SQL Server 2000中它就不支持這種語法,會提示"第 2 行: ',' 附近有語法錯誤。"的警告,批量操作也就無從談起。再比如,這種方法么次最多也只能Insert 1000條數據,如果超過了1000條就會報錯:"INSERT 語句中行值表達式的數目超出了 1000 行值的最大允許值。"。當然了,我們可以分為幾次,每次添加一千條數據,這樣還是比方法一的效率高不少。經過測試(局域網),1W條數據將會耗時15秒左右。
經過測試,我們發現第二種方法要比第一種快了很多,這也是我們所追求的 為沈陽軟件訂制企業提供更好的服務。