সম্পূর্ণ ব্লকিং পোস্টগ্রিজ কোয়েরিগুলি কীভাবে দেখুন?


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। অনুসন্ধান এবং সূচী পরিসংখ্যান সংগ্রহকারী Collector

track_activity_query_size (integer)

pg_stat_activity.current_queryক্ষেত্রের জন্য প্রতিটি সক্রিয় অধিবেশনে বর্তমানে সম্পাদনকারী কমান্ডটি ট্র্যাক করতে সংরক্ষিত বাইটের সংখ্যা নির্দিষ্ট করে । ডিফল্ট মান 1024 । এই প্যারামিটারটি কেবল সার্ভারের শুরুতে সেট করা যেতে পারে।

উদাহরণস্বরূপ যদি track_activity_query_size=16384আপনার কনফিগারেশনটিতে থাকে তবে এর অর্থ এই হবে যে 16k অবধি কোয়েরি পাঠ্য সংগ্রহ করা হবে।


1
এটি পরিষ্কার হয়ে গেছে তা নিশ্চিত করার জন্য (উদ্ধৃতিতে বর্ণিত, যা উপেক্ষা করা যেতে পারে) .. কনফিগারেশন বিকল্পটি পরিবর্তনের জন্য এটি কার্যকর হওয়ার জন্য একটি সার্ভার পুনরায় চালু করা দরকার।
জোশি বদিও
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.