PostgreSQL biedt een opstartbestand (.psqlrc) dat wordt uitgevoerd voordat verbinding wordt gemaakt met de database bij gebruik met het psql-hulpprogramma. Met behulp van het .psqlrc-bestand kunt u al uw belangrijke zoekopdrachten onder een alias van één woord plaatsen met de opdracht 'set' en deze uitvoeren in de psql-terminal in plaats van grote zoekopdrachten te typen. Als u het .psqlrc-bestand niet ziet in de homedirectory van de 'postgres'-gebruiker, kunt u het expliciet maken. Ik heb het geprobeerd en vond het erg nuttig.
Punten op .psqlrc:- .psqlrc is een opstartbestand dat wordt uitgevoerd wanneer verbinding wordt gemaakt met het cluster.
- .psqlrc-bestand zal zich in de thuismap van de 'postgres'-gebruiker bevinden.
- psql-opties -X of -c, lees het .psqlrc-bestand niet.
- .psqlrc-bestand is voor volledig sessieniveau, niet voor databaseniveau.
Mijn terminal Screenshot:
Laten we eens kijken hoe we dit kunnen implementeren.
Syntaxis:
set <alias-variable-name> 'query'Opmerking:als uw zoekopdracht enkele of dubbele aanhalingstekens heeft, gebruik dan ' of ” in de zoekopdracht. Voorbeeldquery's om in .psqlrc-bestand met alias te plaatsen:
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!
Gebruik:
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)
Was het niet nuttig. Genieten van… :). Zal terugkomen met wat meer dingen.