PostgreSQL poskytuje spouštěcí soubor (.psqlrc), který se spustí před připojením k databázi při použití s nástrojem psql. Pomocí souboru .psqlrc můžete umístit všechny důležité dotazy s jedním slovním aliasem příkazem „set“ a provést jej v terminálu psql místo psaní velkých dotazů. Pokud soubor .psqlrc nevidíte v domovském adresáři uživatele ‚postgres‘, můžete jej vytvořit explicitně. Vyzkoušel jsem to a zjistil jsem, že je to velmi užitečné.
Body na .psqlrc:- .psqlrc je spouštěcí soubor, který se spustí při připojení ke clusteru.
- Soubor .psqlrc bude umístěn v domovském adresáři uživatele „postgres“.
- Možnosti psql -X nebo -c, nečíst soubor .psqlrc.
- Soubor .psqlrc je určen pro úplnou úroveň relace, nikoli pro úroveň databáze.
Snímek obrazovky mého terminálu:
Podívejme se, jak to implementovat.
Syntaxe:
set <alias-variable-name> 'query'Poznámka:Pokud váš dotaz obsahuje jednoduché nebo dvojité uvozovky, použijte v dotazu „ nebo “. Ukázkové dotazy k vložení do souboru .psqlrc s aliasem:
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!
Použití:
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)
Nebylo to užitečné. Užívat si… :). Vrátí se s dalšími věcmi.