PostgreSQLで発生しているロックの確認の方法です。
PostgreSQL:ロックの確認と解除方法
上記にありますが、
SELECT l.pid, db.datname, c.relname, l.locktype, l.mode FROM pg_locks l LEFT JOIN pg_class c ON l.relation=c.relfilenode LEFT JOIN pg_database db ON l.database = db.oid WHERE datname='{DATABASE_NAME}' ORDER BY l.pid;
です。
9.6. ロックとテーブル
にあるように、クエリ実行中は数種類のロックがかかっています。
実際に測ってみると、
SELECT文でも AccessShareLockがかかりますが、
これはAccessExclusiveLockモードとのみ競合するとのことなので、
ALTER TALBE, DROP TABLE, VACUUM FULL, LOCK TABLE
以外のクエリに対しては何ら問題ありません。
以上でぇぇぇぇす。
0 件のコメント:
コメントを投稿