Anselmo, eu procurei em "http://www.postgresql.org.br/historico";. :)

Sua dica ajuda, mas não é exatamente disso que preciso. Eu quero saber o
que está sendo executado pela transação XYZ em determinado momento.

O problema é que aqui no meu servidor o "<IDLE> in transaction" não
acontece a toda hora. Tudo está normal e de uma hora para outra várias
transações passam a apresentar esse status. Depois, do nada, tudo volta ao
normal. Como é uma coisa esporádica, fica complicado deixar o log_statment
ativado (dica do Flavio).

Ficou mais claro agora?


Best regards,
--
Miguel Eugênio Ramalho Bezerra, M.Sc.
Federal University of Pernambuco, Brazil
home: http://www.cin.ufpe.br/~merb/
twitter: @migueleugenio


Em 21 de junho de 2012 10:42, Anselmo Silva <[email protected]>escreveu:

> Só uma dica: busque na lista antes de fazer uma pergunta à comunidade.
> A dica que te passei foi postada[1] há algum tempo, não é de autoria minha
>
> [1]
> http://listas.postgresql.org.br/pipermail/pgbr-geral/2008-January/006194.html
>
>
> Em 21 de junho de 2012 10:32, Flavio Henrique Araque Gurgel <
> [email protected]> escreveu:
>
>
>> Em 21-06-2012 10:25, Anselmo Silva escreveu:
>> > SELECT
>> >    client_addr AS "estação",
>> >    D.datname AS "base de dados",
>> >    relname AS "tabela",
>> >    CASE
>> >      WHEN mode = 'AccessShareLock' THEN 'Acesso a tabela'
>> >      WHEN mode = 'ExclusiveLock' THEN 'Travamento da tabela'
>> >      WHEN mode = 'RowShareLock' THEN 'Acesso ao registro da tabela'
>> >      WHEN mode = 'RowExclusiveLock' THEN 'Travamento do registro da
>> tabela'
>> >    END AS "modo"
>> > FROM pg_locks L
>> >    INNER JOIN pg_class C ON C.oid = L.relation AND C.relkind = 'r'
>> >    INNER JOIN pg_database D ON D.oid = L.database
>> >    INNER JOIN pg_stat_activity S ON S.procpid = L.pid
>> > WHERE
>> >    relname NOT LIKE 'pg_%'
>> > ORDER BY modo, client_addr, relname;
>> >
>> >
>> >
>> >
>> > Em 21 de junho de 2012 10:18, Miguel Bezerra <[email protected]
>> > <mailto:[email protected]>> escreveu:
>> >
>> >     Pessoal,
>> >
>> >     Venho observando que existem diversas conexões com o status de
>> >     "<IDLE> in transaction" dentro do meu servidor. Algumas demoram
>> >     bastante para finalizar, enquanto outras nunca terminam.
>> >
>> >     Imagina que esse status seja referente a transações em aberto.
>> >
>> >     Gostaria de saber se existe alguma forma de executar algum tipo de
>> >     trace, via postgres, e verificar o que está sendo executado dentro
>> >     dessas transações.
>> >
>>
>> Além da dica do Anselmo, pra você visualizar 100% do que uma transação
>> está fazendo, você pode habilitar log_statement no conf e observar todas
>> as transações, cada consulta executada, na sequência, direto no log do
>> PostgreSQL.
>>
>> Só lembre-se de ativar esse parâmetro por um pequeno período de tempo,
>> senão seu log vai ficar gigante. É um parâmetro que não requer reinício
>> do PostgreSQL, só reload, não causa indisponibilidade.
>>
>> []s
>>
>> Flavio Henrique A. Gurgel
>> Consultor e Instrutor 4Linux
>> Tel: +55-11-2125-4747
>> www.4linux.com.br
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
>
>
> --
> Anselmo M. Silva
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a