0

SQL Server 2008 R2 のデータベースに、次の非常に単純なクエリがあります。

UPDATE  Table1
   SET  Field1  = 'This value'
 WHERE  ID      = '12345'

このクエリを実行しようとしましたが、成功した結果が得られません。まず、非常に長い時間実行されます。ある時、私はこのクエリを実行し、昼食をとっている間そのままにしておきました。2時間後に戻ってきても、まだ終わっていません。

このクエリをプログラムで実行する必要があります。そこで実行するために必要なものはすべてありますが、唯一の問題は、「タイムアウト」エラーメッセージが表示されることです。CommandTimeOut を増やしてみましたが、そうするとプログラムが長時間保持されます。(SQL Server でクエリを実行すると非常に時間がかかるため、以前のシナリオを参照してください)

誰かがこの問題を回避するための良い解決策を教えてもらえますか? はい、私がアクセスしているテーブルには、何千ものレコードがあります。これは以前は問題ではありませんでしたが、現在は問題になっています。:(

前もって感謝します :)

4

1 に答える 1

6

ID 12345 の行をロックしたトランザクションを開いたままにしているようです。そのトランザクションをコミットまたはロールバックするまで、コマンドは終了しません。

アクティビティ モニターを開き、更新をブロックしているトランザクションを確認します。次に、このトランザクションを実行したコミットされていない SSMS ウィンドウを見つけて、コミットまたはロールバックします。

詳細については、SQL Server のブロッキングの問題の理解と解決を参照してください。一般的なパフォーマンスのトラブルシューティング方法については、 Waits and Queuesを参照してください。

于 2012-04-17T05:45:20.327 に答える