【发布时间】:2012-10-18 13:50:38
【问题描述】:
我正在使用 c# 代码进行大批量的频繁插入和更新,我需要尽快完成,请帮助我找到加快此过程的所有方法。
- 使用
StringBuilder构建命令文本,使用;分隔语句 - 不要使用
String.Format或StringBuilder.AppendFormat,它比多次StringBuilder.Append调用要慢 - 重用
SqlCommand和SqlConnection - 不要使用
SqlParameters(限制批量大小) - 使用
insert into table values(..),values(..),values(..)语法(每条语句 1000 行) - 使用尽可能少的索引和约束
- 尽可能使用简单的恢复模式
- ?
这里有一些问题可以帮助更新上面的列表
- 每个命令(每个
ExecuteNonQuery()调用)的最佳语句数是多少? - 插入和更新是在同一个批次中进行,还是分开执行更好?
tcp 正在接收我的数据,因此请不要建议任何涉及从文件或外部表读取数据的批量插入命令。
插入/更新语句率约为 10/3。
【问题讨论】:
标签: sql-server performance sql-server-2008 tsql insert