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
