Search Postgresql Archives

Re: Performance on DISABLE TRIGGER

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Steele wrote
> 
> ALTER TABLE requires an exclusive lock - my guess is that another
> process has a lock on the table.  It could even be a select.
> 
> pg_locks is your friend in this case:
> http://www.postgresql.org/docs/9.4/static/view-pg-locks.html

Hi David 
I'm a bit confused on how to interpret the result of the pg_locks view.
After running the following (as per linked page).
  SELECT pl.* , psa.query FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON
pl.pid = psa.pid;

I get a result of 2 locks on the "ALTER TABLE ..." statement:

Expanded display is on.
-[ RECORD 1 ]------+-----------------
locktype           | virtualxid
database           | 
relation           | 
page               | 
tuple              | 
virtualxid         | 5/57182
transactionid      | 
classid            | 
objid              | 
objsubid           | 
virtualtransaction | 5/57182
pid                | 6128
mode               | ExclusiveLock
granted            | t
fastpath           | t
query              | ALTER TABLE tab DISABLE TRIGGER trig;
-[ RECORD 2 ]------+----------------
locktype           | relation
database           | 16393
relation           | 22595
page               | 
tuple              | 
virtualxid         | 
transactionid      | 
classid            | 
objid              | 
objsubid           | 
virtualtransaction | 5/57182
pid                | 6128
mode               | AccessExclusiveLock
granted            | f
fastpath           | f
query              | ALTER TABLE tab DISABLE TRIGGER trig;


Something else I noticed while checking out the Server Status window in the
pgAdmin tool:
The stats_activity query run there displays  a "blocked by" column , which
I'm assuming is retrieved using data from pg_locks .
I assume I'm seeing the pid of the process which is causing the block. 
THe process however, is a query generated by the pgADmin tool itself:

   SELECT CASE WHEN typbasetype=0 THEN oid else typbasetype END AS basetype
                   FROM pg_type WHERE oid=1700

May this be the case of pg_catalog data being in need of maintenance ? 

Regards



--
View this message in context: http://postgresql.nabble.com/Performance-on-DISABLE-TRIGGER-tp5839727p5840221.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux