2012-01-18 8 views
1

アプリケーション内で挿入を実行しようとすると、ハングアップして最終的にタイムアウトします。SQL Serverの挿入がハングアップする - プロセスによってブロックされる

私はそれがまだ実行している間EXEC SP_WHO2を実行し、それが別のプロセスによってブロックされたことに気づいたと「待機型」に

を「ロック」がありました、これは何を意味するのでしょうか?どのように私はそれを修正するのですか?私はとても迷っています。

「Blocked By」フィールドにあったプロセスには、deleteステートメントがあります。私はその声明を検証し、うまくいく。

+0

これは一貫あなたのために発生していたり​​、1回の発生であるように見えるのですか? –

+0

私はアプリケーションでレコードを "保存"しようとするたびにこの状態が続きます。 –

+0

これは、挿入をブロックしている競合するロック(おそらくテーブルロック)を所有するオープントランザクションがあることを意味します。まだ仕事が忙しいのか、未だ執行されていないのかは分かりません。 –

答えて

0

ストアドプロシージャに何らかのエラーが発生したため、以前のトランザクションのように見えます。これにより、例外処理がない場合にトランザクションをコミット/ロールバックできなくなります。これは、テーブルのロックとアプリケーション は以下 が推奨されるアプローチである次の要求にハングアップを取得原因...

set xact_abort on 
Begin Try 
    Begin Tran 
    //SQl Query 
    Commit Tran 
End Try 

Begin Catch 
    Rollback Tran 
End Catch 
関連する問題