2011-09-12 10 views
0

vb.netのWebアプリケーションがあり、特定の関数が実行されると、残りのアプリケーションでデータタイムアウトが発生します(つまり、エラーが見つからないか、列が属していません)。SQL Performaceタイムアウト、vb.net

この関数は、データベース内の複数のテーブルに複数の行を追加し、forループで実行しています。関連するすべてのSQLのようですが、私は今、私はそれが関連するメモリであると仮定していますが、私は

を開始する場所にいくつかの提案を探していますSQLまたはアプリケーション

でのエラーログには何も見てないです

メモ.. forループは一括挿入で置き換えられますが、今はタイムアウトの問題を解決する必要があります。

答えて

1

データ保存プロセスのように、いくつかの増分ステップでデータベースに行を追加しているようですあなたのforループ。あなたが考えているようにそのプロセスを1つのバルクインサートにリファクタリングすると、行が見つかりませんでしたエラーの問題が解決されます。何が起こっているかもしれないのは、あなたのシステムでは、ユーザーはインクリメンタルに追加されているレコードに同時にアクセスしているということです。プログラミングソースコードは、データユニット全体が存在することを期待しており、データ挿入ループが完了していないため、ランタイム例外が発生します。

任意の並行システムでは、アトミックな方法でデータを挿入する必要があります。そうでない場合、通常このようなエラーが発生します。

+0

この問題の理解に役立つ、ありがとう –