PostgreSQL, giver en startfil (.psqlrc), som udføres, før der oprettes forbindelse til databasen, når den bruges med psql-værktøjet. Ved at bruge .psqlrc-filen kan du placere alle dine vigtige forespørgsler med ét ord-alias ved at 'set'-kommandoen og udføre den i psql-terminalen i stedet for at skrive store forespørgsler. Hvis du ikke kan se .psqlrc-filen i 'postgres' brugerhjemmemappe, kan du oprette den eksplicit. Jeg prøvede det og fandt det meget nyttigt.
Points på .psqlrc:- .psqlrc er en startfil, der udføres, når der oprettes forbindelse til klyngen.
- .psqlrc-filen vil ligge i 'postgres' brugerhjemmemappe.
- psql-indstillinger -X eller -c, læs ikke .psqlrc-filen.
- .psqlrc-filen er for komplet sessionsniveau, ikke databaseniveau.
Skærmbillede af min terminal:
Lad os se, hvordan du implementerer dette.
Syntaks:
set <alias-variable-name> 'query'Bemærk:Hvis din forespørgsel har enkelte eller dobbelte anførselstegn, skal du bruge ' eller " i forespørgslen. Eksempelforespørgsler til .psqlrc-fil med 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!
Brug:
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)
Var det ikke nyttigt. God fornøjelse… :). Vender tilbage med nogle flere ting.