PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

É possível obter um histórico de consultas feitas no postgres


Não há histórico no próprio banco de dados, se você estiver usando o psql você pode usar "\s" para ver seu histórico de comandos lá.

Você pode obter consultas futuras ou outros tipos de operações nos arquivos de log configurando log_statement no arquivo postgresql.conf. O que você provavelmente quer é log_min_duration_statement , que se você definir como 0 registrará todas as consultas e suas durações nos logs. Isso pode ser útil quando seus aplicativos forem lançados, se você definir isso para um valor mais alto, verá apenas as consultas de longa duração que podem ser úteis para otimização (você pode executar EXPLAIN ANALYZE nas consultas que encontrar para descobrir por que elas são lentos).

Outra coisa útil para saber nesta área é que se você executar o psql e disser "\timing", ele mostrará quanto tempo cada instrução leva. Então, se você tem um arquivo sql que se parece com isso:
\timing
select 1;

Você pode executá-lo com os sinalizadores corretos e ver cada instrução intercalada com o tempo que levou. Veja como e como é o resultado:
$ psql -ef test.sql 
Timing is on.
select 1;
 ?column? 
----------
        1
(1 row)

Time: 1.196 ms

Isso é útil porque você não precisa ser um superusuário de banco de dados para usá-lo, ao contrário de alterar o arquivo de configuração, e é mais fácil de usar se você estiver desenvolvendo um novo código e quiser testá-lo.