पूर्ण अवरोधन प्रश्नों को कैसे देखें?


9

मैं पोस्टग्रेज में अवरुद्ध प्रश्नों को देखने के लिए इस पृष्ठ से एक बयान का उपयोग कर रहा हूं

SELECT bl.pid                 AS blocked_pid,
         a.usename              AS blocked_user,
         ka.query               AS blocking_statement,
         now() - ka.query_start AS blocking_duration,
         kl.pid                 AS blocking_pid,
         ka.usename             AS blocking_user,
         a.query                AS blocked_statement,
         now() - a.query_start  AS blocked_duration
  FROM  pg_catalog.pg_locks         bl
   JOIN pg_catalog.pg_stat_activity a  ON a.pid = bl.pid
   JOIN pg_catalog.pg_locks         kl ON kl.transactionid = bl.transactionid AND kl.pid != bl.pid
   JOIN pg_catalog.pg_stat_activity ka ON ka.pid = kl.pid
  WHERE NOT bl.granted;

हालाँकि, प्रश्नों को छोटा कर दिया गया है इसलिए मैं आमतौर पर यह नहीं देख सकता कि WHEREक्लॉज़ में क्या है जो इन अवरुद्ध मुद्दों को बहुत कठिन बनाता है। क्या ऐसी कोई सेटिंग है जहां मैं पोस्टग्रेज को बता सकता हूं कि पूर्ण क्वेरी को लॉग इन करेंpg_stat_activity

जवाबों:


11

ट्रैक की गई क्वेरी की लंबाई पैरामीटर में पाई जा सकती है track_activity_query_size

18.8.1। क्वेरी और इंडेक्स स्टेटिस्टिक्स कलेक्टर

track_activity_query_size (integer)

pg_stat_activity.current_queryफ़ील्ड के लिए प्रत्येक सक्रिय सत्र के लिए वर्तमान में निष्पादित कमांड को ट्रैक करने के लिए आरक्षित बाइट्स की संख्या निर्दिष्ट करता है । डिफ़ॉल्ट मान 1024 है । यह पैरामीटर केवल सर्वर स्टार्ट पर सेट किया जा सकता है।

उदाहरण के लिए यदि आप track_activity_query_size=16384अपने विन्यास में थे, तो इसका मतलब यह होगा कि 16k तक का क्वेरी पाठ एकत्र किया जाएगा।


1
बस यह सुनिश्चित करने के लिए कि यह स्पष्ट है (जैसा कि उद्धरण में कहा गया है, जिसे अनदेखा किया जा सकता है) .. उस विकल्प को बदलने के लिए इसे प्रभावी करने के लिए सर्वर पुनरारंभ की आवश्यकता होगी।
जोशी बोडियो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.