我正在创建运行大量插入/更新查询的Windows窗体应用程序。即使插入少量信息(700行),您也需要等待几分钟。 这是我正在使用的代码:
foreach (DataRow row in dt.Rows)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
listItems.Add( row[dt.Columns[i].ColumnName], ListOperator.Comma);
}
var insQry = "INSERT INTO table ( ";
insQry = insQry + colList + " ) VALUES ( " + listItems.ToString() + " )";
var tbl = server.RunQuery(insQry);
//at running time this query would look like this "INSERT INTO table (col1,col2) VALUES (value1, value2)"
当我恢复数据时(恢复数据我正在使用更新/删除查询),我看起来很奇怪我插入了,查询性能只需几秒钟。
什么可能缩短插入查询性能时间?也许有可能帮助线程? (如果是这样,什么样的线程?异步?并行线程?)。
欢迎所有想法! :)
答案 0 :(得分:2)
可能是因为您使用字符串连接来构建查询。你应该使用参数。有许多使用它们的广告,包括SQL注入的性能和安全性。
答案 1 :(得分:0)
首先,您是否在事务中包装了插入内容? using (var trans = new TransactionScope(){...}
其次,为什么不使用DataAdapter
?