sql >> データベース >  >> RDS >> PostgreSQL

BEGINステートメントのトランザクションでアイドル状態になる原因

    トランザクションはまったくブロックされていません。データベースは、アプリケーションが次のステートメントを送信するのを待っています。

    トランザクションIDのロックは、トランザクションがテーブルロックを競合していない場合でも(たとえば、行ロックを待機している場合)、トランザクションが相互にブロックするための単なる手法です。各トランザクションは、独自に排他ロックを保持します。トランザクションIDであり、同時トランザクションが完了するのを待つ必要がある場合は、そのトランザクションのIDのロックを要求するだけです(ブロックされます)。

    すべてのトランザクションがこのように見える場合、ロックはアプリケーションのどこかにある必要があります。データベースは関与していません。

    データベースでブロックされているプロセスを探すときは、pg_locksで行を探してください ここでgranted は誤りです。



    1. SQLクエリの結果をmysqlのファイルに書き込みます

    2. MySQLエラー:1395結合ビューから削除できません

    3. 大規模な3Dポイントデータセットを使用したSELECTクエリのパフォーマンスの向上

    4. Apache、MariaDB、PHPをサポートするUbuntuへのLaravelのインストール