segunda-feira, 3 de agosto de 2015

Atualização PgBouncer 1.6

Dia 01 de Agosto saiu uma nova atualização para o PgBouncer a versão é a 1.6.

Novos Recursos na versão 1.6:

  • Carrega o hash de senha do usuário do banco de dados Postgres.
  • O tipo de Pool pode ser configurado tanto por banco de dados e por usuário.
  • O limite de conexão pode ser definido per-database e per-user: max_db_connections e max_user_connections.
  • Novo comando para impedir novas conexões: DISABLE/ENABLE.
  • Novo backend DNS preferencial : c- ares.
  • Arquivos de configuração têm '%include FILENAME' diretiva para permitir a configuração divida em vários arquivos.

Informações extraídas do site oficial do projeto Pgbouncer.

Quantas vezes uma Function foi executada?

Se alguém te perguntar quantas vezes uma função foi executada você vai saber dizer? e ainda qual é o tempo de execução?
Bom eu já passei por essa situação e não soube responder de imediato mas eu sabia que poderia confiar no Elefante, então eu fui estudar o manual e encontrei as respostas.

O PostgreSQL recolhe esse tipo informação mais com uma condição precisa estar ativado um parâmetro no postgresql.conf o parâmetro é o "track_functions", esse parâmetro tem três opções por padrão ele vem como "none" o que quer dizer que esta desativado, tem a opção "pl" que vai logar somente funções do tipo procedural e ainda tem a opção "all" que vai logar o que a opção "pl" loga e também funções em linguagem C. Bom seja qual for a opção que você fez você deve dar um reload no banco para ativar suas configurações, então vamos colocar a mão na massa.

Verificando a situação configuração.

# psql -U postgres -p 5432

postgres=# show track_functions;
 track_functions
-----------------
 none
(1 row)


Esta desativado, então vou setar para all diretamente no postgresql.conf ficando assim:

track_functions = all       # none, pl, all

Reload no banco para ele assumir a nova configuração:

# service postgresql reload

Vamos ver como ficou o parâmetro agora

# psql -U postgres -p 5432

postgres=# show track_functions;
 track_functions
-----------------
 all
(1 row)


Pronto parâmetro ativo e com a opção "all", como vou obter as informações que estão sendo coletado pelo PostgreSQL?

O select é bem simples:

# psql -U postgres -p 5432


database1=# select * from pg_stat_user_functions;
funcid|schemaname|funcname|calls|total_time|self_time 
------+----------+--------+-----+----------+-----------
13972 | public   | vali   |   8 |    1.183 |   1.183



Essa dica ajuda bastante!

Fonte postgresql.org