0

ユーザーがフォームを投稿した後、C# MySQL Connector/NET を使用して約 500 行を更新する必要があります。同じ接続を再利用していますが、複数の ExecuteNonQuery を実行しているため、パフォーマンスの問題が発生しています。

この問題を解決するための最善の方法/ベストプラクティスは何ですか?

  • 非常に長い SQL 文字列を作成する必要がありますか? その場合、各行に特定のパラメーター値と変数を設定するにはどうすればよいですか?
  • ストリーミング インターフェイスはありますか?
  • 最適なバルク インターフェイスはありますか?

セキュリティ上の理由から、平文ではなくパラメータ変数を使用することを好みます。たとえば、「INSERT INTO xxx (a, b, c) VALUES (@a, @b, @c)」ですが、これが不可能な制約である場合はお知らせください。

4

2 に答える 2

0

500行程度しかない場合は、長いSQL文字列を作成して一度だけ実行する傾向があります

Insert into MyTable (a, b, c) values (1,2,3), (2, 3, 4)

「(1, 2, 3),(2 ,3, 4)」部分を作成している場所。

于 2013-07-17T03:40:16.417 に答える
0

更新を、たとえば 50 のバッチにバッチ処理できます。番号付きのパラメーター名を使用して、50 の更新の SQL クエリを作成しますINSERT INTO xxx (a, b, c) VALUES (@a_1, @b_1, @c_1)。次に、同じ名前のパラメーターを動的に作成します。

更新する必要があると言っていますが、コードに挿入が表示されます。実際に挿入を行っている場合は、おそらく 1 つの挿入ステートメントで複数の行を挿入する必要があります (MySQL はそれをサポートしていると思います)。

于 2013-07-18T15:13:41.787 に答える