is there an easy way to detect locks which are held for a very long
time? We've got some problems with a database here where a lock is held
for 1 or 2 hours though the operation should be very quick. A lot of
other processes are then waiting for the lock to become available.
We would like to query for "lock on table xyz being held for more than
60 seconds" or the other way around "query has been waiting for lock on
table xyz for more than 60 seconds".
Of course, we get log entries like "LOG: duration: 8544285.789 ms
execute <unnamed>: lock table "xyz" in exclusive mode", but this is
AFTER the lock got acquired. We'd like to notice if lock acquisition
takes very long so we can look around and figure out what's wrong.
How can we achieve this?
PS: Version is 8.2.4.
Tino Schwarze * Parkstraße 17h * 09120 Chemnitz
pgsql-admin by date
|Next:||From: Scott Marlowe||Date: 2007-09-12 22:02:56|
|Subject: Re: automatically detecting long timed locks|
|Previous:||From: Alvaro Herrera||Date: 2007-09-12 20:30:28|
|Subject: Re: reindexdb hangs|