From: | Michael Fuhr <mike(at)fuhr(dot)org> |
---|---|
To: | Emi Lu <emilu(at)encs(dot)concordia(dot)ca> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: About checking all dead lock tables |
Date: | 2006-04-07 02:14:58 |
Message-ID: | 20060407021458.GA55452@winnie.fuhr.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Thu, Apr 06, 2006 at 03:36:33PM -0400, Emi Lu wrote:
> How to check whether a table is locked?
You can monitor locks by querying the pg_locks view.
http://www.postgresql.org/docs/8.0/interactive/monitoring-locks.html
http://www.postgresql.org/docs/8.0/interactive/view-pg-locks.html
Only a few operations lock entire tables; for more information see
the Concurrency Control chapter in the documentation.
http://www.postgresql.org/docs/8.0/interactive/mvcc.html
> Is there a way that I can find all deadlocks under postgresql 8.0.1 ?
Are you sure you mean "deadlocks"? Deadlock occurs when transaction
A holds a lock that transaction B wants and transaction B holds a
lock that transaction A wants; PostgreSQL detects this condition
and aborts one of the transactions, allowing the other to continue.
By default this happens after one second (see the deadlock_timeout
setting).
Perhaps you want to see pending or blocked lock attempts, i.e.,
locks that have been requested but are not yet acquired because
another transaction holds a conflicting lock. If that's the case
then look for rows in pg_locks where "granted" is false.
--
Michael Fuhr
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-04-07 03:48:21 | Re: Debian package for freeradius_postgresql module |
Previous Message | Jim Nasby | 2006-04-07 01:52:14 | Re: stored proc vs sql query string |