Excerpts from Hellmuth Vargas's message of mié ago 29 17:33:40 -0400 2012:
> Hola Lista
> 
> tiempo sin escribir!!! En  múltiples oportunidades  se presentan
> transacciones que  pueden demorar mucho tiempo y uno desea indagar que
>  tablas o en general objetos están involucradas en el mismos
> para determinar problemas de indices,  mantenimiento, etc.
> 
> He probado y ajustado  consultas disponible en varias fuentes (la principal
> http://wiki.postgresql.org/wiki/Lock_Monitoring) pero ninguna logra sacar
> el nombre y/o tipo de todos los objetos involucrados en un bloqueo
> 
> esta es la ultima consulta que estoy manejando para aquellos bloqueos de
> mas de 2 minutos
> 
> select pg_stat_activity.procpid,pg_class.relname,pg_locks.transactionid,
> pg_locks.mode from pg_stat_activity,pg_locks left outer join pg_class on
> (pg_locks.relation = pg_class.oid) where
> pg_locks.pid=pg_stat_activity.procpid and
> pg_stat_activity.current_query<>'<IDLE>' and
> current_timestamp-xact_start>interval '2 minutes' order by query_start
> 
> Alguien tendría una consulta  mejor? les agradezco de antemano su aporte!!

Normalmente cuando tienes bloqueos sin explicación puede deberse a
llaves foráneas. En ese caso hay candados granted=true con
locktype=tuple en pg_locks que están tomados por transacciones que
además tienen un candado granted=false asociados a otra transacción.  Lo
que esto significa es que esa otra transacción tiene bloqueado la tupla
en cuestión, pero esto no queda representado en pg_locks.

Se supone que esto está parcialmente explicado en esta presentación:
http://lanyrd.com/2011/pgbr/skdgz/ .. pero vaya, veo que no están las
láminas.  Ah, aquí:
http://pgbr.postgresql.org.br/2011/slides/65.pdf

Quizás te sirva de algo.

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a