PostgreSQL, एक स्टार्टअप फ़ाइल (.psqlrc) प्रदान करता है जो psql उपयोगिता के साथ उपयोग करते समय डेटाबेस से कनेक्ट होने से पहले निष्पादित होती है। .psqlrc फ़ाइल का उपयोग करके आप अपने सभी महत्वपूर्ण प्रश्नों को 'सेट' कमांड द्वारा एक शब्द उपनाम के साथ रख सकते हैं और बड़े प्रश्नों को टाइप करने के बजाय इसे psql टर्मिनल में निष्पादित कर सकते हैं। यदि आप 'postgres' उपयोगकर्ता होम निर्देशिका में .psqlrc फ़ाइल नहीं देखते हैं, तो आप इसे स्पष्ट रूप से बना सकते हैं। मैंने इसे आजमाया और बहुत मददगार पाया।
.psqlrc पर अंक:- .psqlrc एक स्टार्टअप फ़ाइल है, जो क्लस्टर से कनेक्ट होने पर निष्पादित होती है।
- .psqlrc फ़ाइल 'postgres' उपयोगकर्ता होम निर्देशिका में रहेगी।
- psql विकल्प -X या -c, .psqlrc फ़ाइल न पढ़ें।
- .psqlrc फ़ाइल पूरे सत्र-स्तर के लिए है न कि डेटाबेस स्तर के लिए।
मेरा टर्मिनल स्क्रीनशॉट:
आइए देखें कि इसे कैसे लागू किया जाए।
वाक्यविन्यास:
set <alias-variable-name> 'query'ध्यान दें:अगर आपकी क्वेरी में सिंगल या डबल कोट्स हैं तो क्वेरी में ' या ” का इस्तेमाल करें। उपनाम के साथ .psqlrc फ़ाइल में डालने के लिए नमूना क्वेरी:
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!
उपयोग:
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)
क्या यह मददगार नहीं था। आनंद लेना… :)। कुछ और चीजों के साथ वापस आऊंगा।