PostgreSQL, menyediakan file startup (.psqlrc) yang dieksekusi sebelum terhubung ke database saat digunakan dengan utilitas psql. Menggunakan file .psqlrc Anda dapat menempatkan semua pertanyaan penting Anda dengan satu kata alias dengan perintah 'set' dan menjalankannya di terminal psql alih-alih mengetik pertanyaan besar. Jika Anda tidak melihat file .psqlrc di direktori home pengguna 'postgres', Anda dapat membuatnya secara eksplisit. Saya mencobanya dan ternyata sangat membantu.
Poin di .psqlrc:- .psqlrc adalah file startup, dijalankan saat menghubungkan ke cluster.
- File .psqlrc akan berada di direktori home pengguna 'postgres'.
- psql options -X atau -c, jangan membaca file .psqlrc.
- File .psqlrc adalah untuk level sesi lengkap, bukan level basis data.
Screenshot terminal saya:
Mari kita lihat bagaimana menerapkan ini.
Sintaks:
set <alias-variable-name> 'query'Catatan:jika kueri Anda memiliki tanda kutip tunggal atau ganda, gunakan ' atau ” dalam kueri. Contoh Query untuk dimasukkan ke dalam file .psqlrc dengan 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!
Penggunaan:
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)
Apakah itu tidak membantu. Menikmati… :). Akan kembali dengan beberapa barang lagi.