第一種方法:採用的傳統的方式插入,即insert into 表名VALUES(值) 打開數據庫,插入數據庫,關閉數據,一共插入5000條數據,分別用時4152六、3926六、39585 (這個方法最主要是耗時用在打開數據庫鏈接上和關閉數據庫鏈接上)sql
第二種方法:採用的先把sql語句用分號拼接起來,最後再一次性插入到數據庫中,即insert into 表名VALUES(值); insert into 表名VALUES(值),分別用時12718,13268,11834數據庫
第三種方法:採用的是union all 關鍵字把值拼接起來,而後再一次性插入到數據庫中,即insert into 表名select 值1 union all 值2 union all …… 分別用時22985,23734,24639服務器
由此看出:方法二速度 > 方法三 > 方法一 值得注意的地方是當數據量大多時,就要修改SqlCommand.CommandTimeout屬性, 否則會報 「Timeout 時間已到。在操做完成以前超時時間已過或服務器未響應。」io
補充一下:SqlCommand.CommandTimeout 和 SqlConnection.ConnectionTimeout 這兩個的區別select
SqlCommand.CommandTimeout:獲取或設置在終止執行命令的嘗試並生成錯誤以前的等待時間。等待命令執行的時間(以秒爲單位)。默認爲 30 秒。
SqlConnection.ConnectionTimeout:獲取在嘗試創建鏈接時終止嘗試並生成錯誤以前所等待的時間。等待鏈接打開的時間(以秒爲單位)。默認值爲 15 秒。sql語句