Meu aplicativo de banco de dados executa muitas consultas diferentes. Eu configurei log_min_duration_statement
para 1000. Mas as consultas registradas nem sempre são lentas, na maioria das vezes elas levam apenas alguns ms.
É possível obter uma estatística de todas as consultas e com que frequência elas demoravam mais de 1000 ms?
postgresql
performance
user2047809
fonte
fonte
Respostas:
Instale a extensão pg_stat_statements com o comando SQL
CREATE EXTENSION pg_stat_statements
Você pode querer criar isso usando um usuário apropriado (como o usuário que seu aplicativo usa ou alguma conta dba). Esteja ciente de que qualquer usuário que criar a extensão também será o proprietário.
Isso exigirá uma reinicialização do servidor para que seja utilizável (porque você precisa alterar um pouco a configuração do postgresql.conf que afeta o consumo de memória), mas fornecerá estatísticas sobre todas as consultas.
Por favor, consulte a página da documentação para obter mais informações sobre o que o pg_stat_statements fornece. Veja aqui uma referência rápida sobre a configuração do arquivo de configuração postgresql.conf para pg_stat_statements.
Depois de instalá-lo e executando, você pode visualizar as estatísticas consultando a visualização pg_stat_statements.
fonte
Como @JoishiBodio disse que você pode usar a
pg_stat_statements
extensão para ver estatísticas de consultas lentas. Para aqueles que lutam com a instalação (como eu fiz):Verifique se
pg_stat_statements
está na lista de extensões disponíveis:Tente instalar o
postgresql-contrib
pacote através do gerenciador de pacotes do sistema, no Debian / Ubuntu:Em seguida, execute o passo 1 novamente.
pg_stat_statements
àshared_preload_libraries
configuração do PostgreSQL:via
postgres.conf
:via argumentos da linha de comando (sem aspas!):
Em seguida, crie a extensão em um banco de dados:
fonte