我從c#代碼大量批量插入和更新頻繁的內容,我需要儘快完成,請幫助我找到加快此過程的所有方法。針對SQL Server的最佳插入/更新批次
- 使用
StringBuilder
,單獨的語句與;
- 不要使用
String.Format
或StringBuilder.AppendFormat
,它的慢則多個StringBuilder.Append
生成命令文本調用 - 重用
SqlCommand
和SqlConnection
- 不要使用
SqlParameter
S(限制批量大小) - 使用
insert into table values(..),values(..),values(..)
語法(每行1000行) - 使用盡可能少的索引和約束
- 如果可能,使用簡單恢復模式
- ?
這裏有問題,幫助更新以上
- 名單是什麼語句每命令(每一個
ExecuteNonQuery()
調用)的最佳數量? - 在同一批次中插入和更新是否好,還是分別執行更好?
我的數據正在被tcp接收,因此請不要建議任何涉及從文件或外部表讀取數據的大容量插入命令。
插入/更新報表率約爲10/3。
謝謝,我會盡力去做,並返回結果。 – Anri
我也建議在表上只有一個索引(一個集羣標識),或者可能把它留在堆上。如果您需要其他索引,請先嚐試刪除它們,然後在導入後重新創建它們。 – PseudoToad
謝謝@Gizmo,桌子很大,20列左右。 傳入數據流不斷,我仍然必須在該表上運行選擇,所以沒有意義刪除重新創建索引。 – Anri