-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 に答える