Existe um PostgreSQL equivalente ao SQL Server profiler?
Preciso de ver as consultas submetidas a um servidor PostgreSQL. Normalmente eu usaria o perfil do servidor SQL para executar esta ação na terra do servidor SQL, mas ainda estou para encontrar como fazer isso no PostgreSQL. Parece haver algumas ferramentas pay-for, eu estou esperando que haja uma variante de código aberto.
5 answers
Você pode usar a configuração de configuração log_ statement para obter a lista de todas as consultas para um servidor
Https://www.postgresql.org/docs/current/static/runtime-config-logging.html#guc-log-statement
Basta definir isso, e a localização do ficheiro de registo e você terá a lista. Você também pode configurá-lo para apenas registar as consultas de longa duração.
Depois podes pegar nessas perguntas e explicar-lhes o que se está a passar. o.Https://www.postgresql.org/docs/9.2/static/using-explain.html
Adicionando à resposta de Josué, para ver que consultas estão actualmente em execução basta emitir a seguinte declaração a qualquer momento (por exemplo, na janela de consulta de PG Adminii):
SELECT datname,procpid,current_query FROM pg_stat_activity;
Saída da amostra:
datname | procpid | current_query
---------------+---------+---------------
mydatabaseabc | 2587 | <IDLE>
anotherdb | 15726 | SELECT * FROM users WHERE id=123 ;
mydatabaseabc | 15851 | <IDLE>
(3 rows)
Descobri o pgBadger ( http://dalibo.github.io/pgbadger e é uma ferramenta fantástica que salvou a minha vida muitas vezes. Aqui está um exemplo de relatório: http://dalibo.github.io/pgbadger/samplev4.html Se você abrir e ir para o menu' top', você pode ver as consultas mais lentas e as consultas demoradas. Então você pode pedir detalhes e ver gráficos bonitos que mostram as consultas por hora e se você usar o botão de detalhe você pode ver o texto SQL de uma forma bonita. Então eu posso ver isso esta ferramenta é gratuita e perfeita.
Funciona para mim:
Abrir postgresql.conf
Conjunto:
Log_statement = ' mod '
Log_min_messages = debug2
Abra o último registo na pasta C:\Program ficheiros\PostgreSQL\9.6\data\PG_ log\
As perguntas estarão lá.Eu uso postgresql-9, 6, 5-1