TL;DR PostgreSQLのロックマネージャ 行ロック 行ロック待ち トランザクションIDへのロック トランザクション完了の順番待ち まとめ 参考 PostgreSQLが持つpg_lockシステムビューを使うと、PostgreSQLのロックマネージャが管理している情報を見ることができ、誰がどのようなオブジェクトに対し、どの種類のロックを取得しているのか、または取得できずに待っているのかを確認することができます。 PostgreSQLはロック対象のオブジェクトとして、テーブル、インデックス、行(タプル)やトランザクションIDがあります。実はトランザクションIDへのロックはPostgreSQLでは多用していて、pg_locksビューやサーバログでトランザクションID(やトランザクション)に対してExclusiveLockやShareLockの取得は見たことがある人も多いのではと思います。