問題タブ [database-deadlocks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6011 参照

mysql - Mysql デッドロック検出

MySQL は常にデッドロックを自動的に検出しますか? または、MySQL がデッドロックを処理していることを認識できない場合がありますか?

0 投票する
2 に答える
18277 参照

postgresql - UPDATE実行時のPostgreSQLのデッドロック

PostgreSQLのデッドロックについて読んで少し混乱しています。

典型的なデッドロックの例は次のとおりです。

しかし、次のようにコードを変更するとどうなりますか?

ここでデッドロックが発生する可能性はありますか?

基本的に私の質問は次のとおりです。2番目のケースでは、PostgreSQLは行を1つずつロックしますか、それともWHERE条件の対象となるスコープ全体をロックしますか?

前もって感謝します!

0 投票する
0 に答える
333 参照

sql - SqlServer:- データの挿入および表示中のデッドロックとロックの問題

別のユーザーが表示を要求しているのと同時に、プロシージャによって 3 つのテーブルに値を挿入するページがあります。しかし、DeadLock のエラーが発生します。

また、挿入プロセスが遅くなります。たとえば、50 人のユーザーがそのテーブルにデータを並行して挿入し、15 人のユーザーがそのデータの表示を要求しています。

ここに画像の説明を入力

3 つのテーブルすべてに CusterIndex と Non ClusterIndex があります。ページ レベルのロックと行レベルのロックが有効になっています。それらを無効にすると助けになりますか?

ここに画像の説明を入力

表示または挿入のみが行われている場合はスムーズに動作します。しかし、同時プロセスがそのハイキングを開始すると。表示のために「タイムアウトエラー」または「デッドロックの犠牲者」を発生させます。ロックが増加し、待機時間の開始も0.1 <分で、その後増加します。

前もって感謝します

0 投票する
2 に答える
1148 参照

tsql - このSQLでデッドロックが発生するのを防ぐ方法

まず、デッドロックを100%防ぐ必要はありませんが、デッドロックを減らすためにできることは何でもいいでしょう。

私は2つのテーブルSourceとを持っていDestます。ソースには一意の値がたくさんあります。新しい値を要求する必要があります。Sourceその際、に移動しDestます。

私は次のSQLを持っています:

valueこれにより、複数のユーザーが同じ行を取得したときにデッドロックが発生することがあります。どうすればこれを防ぐ/減らすことができますか?

SQLServer2008を使用しています

余談ですが、他の列がSourceありDest、私はこの列から読み取り/書き込みを行っています。これは簡潔にするための簡略化です。

ありがとう

0 投票する
2 に答える
7162 参照

sql-server-2005 - SQL Server 2005 でデッドロックを解消する方法は?

まず、SQL Server 2005 でのデッドロックの実際の根本的な原因を知りたいと思います。それは、2 つのプロセスがテーブルの同じ行にアクセスするためですか?

とにかく、2 つのテーブル_Table_Now__Table_History_、両方が同じ構造を持つ場所を考えてみましょう。

という 1 つの列があるとしNAMEます。

NAME='BLUE'そのため、あるプロセスがinでレコードを UPDATE しようとすると_Table_Now_、最初に現在の行をupdate にNAME='BLUE'入れ、以前に存在していた行を から削除する必要があります。_Table_History__Table_Now__Table_History_

削除中にデッドロックが発生します。私はなぜなのか理解していない?

ガイドしてください!

0 投票する
0 に答える
45 参照

java - 「(!Oracle.acquireLockNoWait)」の使用法

「!Oracle.acquireLockNoWait」の正確な機能を知りたいのですが、実際にはこれはcronジョブを呼び出すメソッドですが、何らかの理由で実行中のジョブが見つかりません。したがって、このコードがブロックまたはデッドロックを引き起こす可能性があるかどうかを確認したかっただけです。

「プロセスのために別のセッションが進行中です:」というエラーが表示されます。これにはどのような理由が考えられますか?

0 投票する
3 に答える
5959 参照

sql-server-2005 - SQL Server 2005 でテーブル全体をロックせずにデータを挿入/更新できないのはなぜですか?

SQL Server テーブルに行を挿入/更新しようとしています (存在するかどうかによって異なります)。複数のマシンで複数のスレッドから SQL を実行していますが、重複キー エラーが発生するのを避けたいと考えています。

オンラインで多くの解決策を見つけましたが、それらはすべてトランザクションのデッドロックを引き起こしています。これは私が使ってきた一般的なパターンです:

私が試してみました:

  • WITH XLOCKそれ以外のUPDLOCK
  • SET TRANSACTION ISOLATION LEVEL SERIALIZABLE最初にUPDLOCK
  • SET TRANSACTION ISOLATION LEVEL SERIALIZABLEテーブルヒントなし

上記のすべての組み合わせで次のパターンも試しました。

デッドロックなしで動作させる唯一の方法は、を使用することWITH (TABLOCKX)です。

SQL Server 2005 を使用しています。SQL は実行時に生成されるため、ストアド プロシージャには含まれず、一部のテーブルでは主キーではなく複合キーが使用されますが、整数の主キーを持つテーブルで再現できます。

サーバーログは次のようになります。

モードは、使用するテーブル ヒントによって明らかに異なります (ただし、プロセスは、既に所有しているモードを常に待機しています)。RangeS-U、RangeX-X、および U を見てきました。

私は何を間違っていますか?

0 投票する
1 に答える
1666 参照

database-deadlocks - SQL デッドロック ストアド プロシージャに Update ステートメントを挿入する

以下のように、タイトルと呼ばれる非常に基本的なテーブルがあります。

TitleID の PK Clustered Index である 1 つのインデックスのみ

今、ReadCommitted トランザクションのストアド プロシージャを介して、このテーブルにレコードを挿入しています。

このストアド プロシージャは、IsPrimary = 1 のテーブルにレコードを挿入し、他のすべてのタイトルを 0 に更新します。

マルチユーザーシナリオでこれをテストした瞬間、デッドロックの問題が発生しました。ストアド プロシージャから UPDATE コマンドを削除すると、すべて正常に動作します...

ルックアップ列に非クラスター化インデックスを作成しようとしましたが、更新ステートメントで WITH (ROWLOCK) ヒントも試しましたが、何も機能していないようです。

SQLステートメントを実行して推定実行計画を表示すると、クラスター化インデックスの両方が更新されていることがわかり、これが複数ユーザーのシナリオで失敗する場所だと思います...

それはかなり単純なシナリオであり、多くの人がこの種の動作を高トランザクション システムで実装する必要があると思いますが、この問題にアプローチ/解決する方法について何も見つけることができません。あなたの助けに感謝します.

ありがとうございました。

0 投票する
0 に答える
298 参照

oracle - weblogicトランザクションからのOracle RACのデッドロック

最近、データベース内のテーブルがロックされていました。Oracle RAC を使用しており、データベースに送信されたトランザクションは weblogic 10.3.0 によって管理されています。複数のデータソースを構成し、トランザクションで [グローバル トランザクションをサポート] オプションと [1 フェーズ コミット] オプションを有効にしました。そのテーブルがロックされた後、weblogic がこのトランザクションを強制終了しない理由がわかりません。私の質問は次のとおりです。

1 - 接続プール構成に基づいて ORACLE RAC がテーブルをロックする理由として考えられるものは何ですか?

2 - weblogic がタイムアウト後にトランザクションを強制終了しなかったのはなぜですか (この場合、タイムアウトを 30 秒に設定しています)。

詳細情報: weblogic を ORACLE RAC に接続するためにシン ドライバを使用しています。

このシナリオでは、デッドロックに関連するエラーや、ログにこのようなエラーは表示されませんでした:(