小さなテーブル(700行)で非常に単純な削除(キー単位)が行われ、すべての(現在は700ミリ秒)ロックは「付与済み」としてマークされます。postgresqlすべてのロックが付与された「トランザクション内のアイドル」
原因を特定するにはどうすればよいですか? 私はこの選択を使用しています:
SELECT a.datname,
c.relname,
l.transactionid,
l.mode,
l.GRANTED,
a.usename,
a.waiting,
a.query,
a.query_start,
age(now(), a.query_start) AS "age",
a.pid
FROM pg_stat_activity a
JOIN pg_locks l ON l.pid = a.pid
JOIN pg_class c ON c.oid = l.relation
ORDER BY a.query_start;
ので、私は遅延のこのスパイクを引き起こしているものを見ていない...「RowExclusiveLock」Sの多くを示していますが、すべてが付与されています。
idle in transactionはコミット/ロールバック/エンドを実行しなかったことを意味します。トランザクションの共有を持つプールに接続しています –
トランザクションはSpring @ Transactionによって処理され、通常は正常ですが、この状態が分の – Leo