-1

我正在创建运行大量插入/更新查询的 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)"

对我来说奇怪的是,当我恢复数据时(为了恢复数据,我正在使用更新/删除查询)我被插入,查询性能只需要几秒钟。

有什么可能缩短插入查询性能时间?也许有可以帮助的线程?(如果是这样,什么样的线程?异步?并行线程?)。

欢迎所有想法!:)

4

2 回答 2

2

也许是因为您使用字符串连接来构建查询。你应该使用参数。使用它们有很多优点,包括 SQL 注入的性能和安全性。

于 2012-07-23T19:53:08.140 回答
0

首先,您是否将插入包装在事务中?using (var trans = new TransactionScope(){...}

其次,为什么不使用 aa DataAdapter

于 2012-07-23T19:51:53.573 回答