第一種方法:採用的傳統的方式插入,即insert into 表名VALUES(值) 打開資料庫,插入資料庫,關閉數據,一共插入5000條數據,分別用時41526、39266、39585 (這個方法最主要是耗時用在打開資料庫連接上和關閉資料庫連接上) 第二種方法:採用的先把sql語句用分號拼接起來,最 ...
第一種方法:採用的傳統的方式插入,即insert into 表名VALUES(值) 打開資料庫,插入資料庫,關閉數據,一共插入5000條數據,分別用時41526、39266、39585 (這個方法最主要是耗時用在打開資料庫連接上和關閉資料庫連接上)
第二種方法:採用的先把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 時間已到。在操作完成之前超時時間已過或伺服器未響應。”
補充一下:SqlCommand.CommandTimeout 和 SqlConnection.ConnectionTimeout 這兩個的區別
SqlCommand.CommandTimeout:獲取或設置在終止執行命令的嘗試並生成錯誤之前的等待時間。等待命令執行的時間(以秒為單位)。預設為 30 秒。
SqlConnection.ConnectionTimeout:獲取在嘗試建立連接時終止嘗試並生成錯誤之前所等待的時間。等待連接打開的時間(以秒為單位)。預設值為 15 秒。