PostgreSQL, fornece um arquivo de inicialização (.psqlrc) que é executado antes de se conectar ao banco de dados ao usar o utilitário psql. Usando o arquivo .psqlrc você pode colocar todas as suas consultas importantes com um alias de palavra pelo comando 'set' e executá-lo no terminal psql em vez de digitar grandes consultas. Se você não verá o arquivo .psqlrc no diretório inicial do usuário ‘postgres’, você pode criá-lo explicitamente. Eu tentei e achei muito útil.
Pontos em .psqlrc:
- .psqlrc é um arquivo de inicialização, executado ao conectar-se ao cluster.
- O arquivo .psqlrc residirá no diretório inicial do usuário 'postgres'.
- opções do psql -X ou -c, não leia o arquivo .psqlrc.
- O arquivo .psqlrc é para o nível de sessão completo, não para o nível de banco de dados.
Captura de tela do meu terminal:
Vamos ver como implementar isso.
Sintaxe:
set <alias-variable-name> 'query'Observação:se sua consulta tiver aspas simples ou duplas, use ' ou ” na consulta. Exemplo de consultas para colocar no arquivo .psqlrc com alias:
vi ~/.psqlrc
set PAGER OFF
set waits 'SELECT pg_stat_activity.procpid, pg_stat_activity.current_query, pg_stat_activity.waiting, now() - pg_stat_activity.query_start as "totaltime", pg_stat_activity.backend_start FROM pg_stat_activity WHERE pg_stat_activity.current_query !~ '%IDLE%'::text AND pg_stat_activity.waiting = true;;'
set locks 'select pid,mode,current_query from pg_locks,pg_stat_activity where granted=false and locktype='transactionid' and pid=procpid order by pid,granted;;'
:wq!
Uso:
postgres=# :waits
procpid | current_query | waiting | totaltime | backend_start
---------+-------------------------------+---------+-----------------+----------------------------------
9223 | insert into locks VALUES (1); | t | 00:00:18.901773 | 2011-10-08 00:29:10.065186+05:30
(1 row)
postgres=# :locks
pid | mode | current_query
------+-----------+-------------------------------
9223 | ShareLock | insert into locks VALUES (1);
(1 row)
Não foi útil. Aproveitar… :). Volto com mais coisas.