問題タブ [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.
mysql - Mysql デッドロック検出
MySQL は常にデッドロックを自動的に検出しますか? または、MySQL がデッドロックを処理していることを認識できない場合がありますか?
postgresql - UPDATE実行時のPostgreSQLのデッドロック
PostgreSQLのデッドロックについて読んで少し混乱しています。
典型的なデッドロックの例は次のとおりです。
しかし、次のようにコードを変更するとどうなりますか?
ここでデッドロックが発生する可能性はありますか?
基本的に私の質問は次のとおりです。2番目のケースでは、PostgreSQLは行を1つずつロックしますか、それともWHERE
条件の対象となるスコープ全体をロックしますか?
前もって感謝します!
sql - SqlServer:- データの挿入および表示中のデッドロックとロックの問題
別のユーザーが表示を要求しているのと同時に、プロシージャによって 3 つのテーブルに値を挿入するページがあります。しかし、DeadLock のエラーが発生します。
また、挿入プロセスが遅くなります。たとえば、50 人のユーザーがそのテーブルにデータを並行して挿入し、15 人のユーザーがそのデータの表示を要求しています。
3 つのテーブルすべてに CusterIndex と Non ClusterIndex があります。ページ レベルのロックと行レベルのロックが有効になっています。それらを無効にすると助けになりますか?
表示または挿入のみが行われている場合はスムーズに動作します。しかし、同時プロセスがそのハイキングを開始すると。表示のために「タイムアウトエラー」または「デッドロックの犠牲者」を発生させます。ロックが増加し、待機時間の開始も0.1 <分で、その後増加します。
前もって感謝します
tsql - このSQLでデッドロックが発生するのを防ぐ方法
まず、デッドロックを100%防ぐ必要はありませんが、デッドロックを減らすためにできることは何でもいいでしょう。
私は2つのテーブルSource
とを持っていDest
ます。ソースには一意の値がたくさんあります。新しい値を要求する必要があります。Source
その際、に移動しDest
ます。
私は次のSQLを持っています:
value
これにより、複数のユーザーが同じ行を取得したときにデッドロックが発生することがあります。どうすればこれを防ぐ/減らすことができますか?
SQLServer2008を使用しています
余談ですが、他の列がSource
ありDest
、私はこの列から読み取り/書き込みを行っています。これは簡潔にするための簡略化です。
ありがとう
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_
削除中にデッドロックが発生します。私はなぜなのか理解していない?
ガイドしてください!
java - 「(!Oracle.acquireLockNoWait)」の使用法
「!Oracle.acquireLockNoWait」の正確な機能を知りたいのですが、実際にはこれはcronジョブを呼び出すメソッドですが、何らかの理由で実行中のジョブが見つかりません。したがって、このコードがブロックまたはデッドロックを引き起こす可能性があるかどうかを確認したかっただけです。
「プロセスのために別のセッションが進行中です:」というエラーが表示されます。これにはどのような理由が考えられますか?
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 を見てきました。
私は何を間違っていますか?
database-deadlocks - SQL デッドロック ストアド プロシージャに Update ステートメントを挿入する
以下のように、タイトルと呼ばれる非常に基本的なテーブルがあります。
TitleID の PK Clustered Index である 1 つのインデックスのみ
今、ReadCommitted トランザクションのストアド プロシージャを介して、このテーブルにレコードを挿入しています。
このストアド プロシージャは、IsPrimary = 1 のテーブルにレコードを挿入し、他のすべてのタイトルを 0 に更新します。
マルチユーザーシナリオでこれをテストした瞬間、デッドロックの問題が発生しました。ストアド プロシージャから UPDATE コマンドを削除すると、すべて正常に動作します...
ルックアップ列に非クラスター化インデックスを作成しようとしましたが、更新ステートメントで WITH (ROWLOCK) ヒントも試しましたが、何も機能していないようです。
SQLステートメントを実行して推定実行計画を表示すると、クラスター化インデックスの両方が更新されていることがわかり、これが複数ユーザーのシナリオで失敗する場所だと思います...
それはかなり単純なシナリオであり、多くの人がこの種の動作を高トランザクション システムで実装する必要があると思いますが、この問題にアプローチ/解決する方法について何も見つけることができません。あなたの助けに感謝します.
ありがとうございました。
oracle - weblogicトランザクションからのOracle RACのデッドロック
最近、データベース内のテーブルがロックされていました。Oracle RAC を使用しており、データベースに送信されたトランザクションは weblogic 10.3.0 によって管理されています。複数のデータソースを構成し、トランザクションで [グローバル トランザクションをサポート] オプションと [1 フェーズ コミット] オプションを有効にしました。そのテーブルがロックされた後、weblogic がこのトランザクションを強制終了しない理由がわかりません。私の質問は次のとおりです。
1 - 接続プール構成に基づいて ORACLE RAC がテーブルをロックする理由として考えられるものは何ですか?
2 - weblogic がタイムアウト後にトランザクションを強制終了しなかったのはなぜですか (この場合、タイムアウトを 30 秒に設定しています)。
詳細情報: weblogic を ORACLE RAC に接続するためにシン ドライバを使用しています。
このシナリオでは、デッドロックに関連するエラーや、ログにこのようなエラーは表示されませんでした:(