পোস্টগ্রিজ এসকিউএল ডিবিতে সংযোগের বর্তমান সংখ্যা পেতে সঠিক জিজ্ঞাসা


উত্তর:


226

এই দুটি প্রয়োজন সমতুল্য নয়। প্রথমটির সমতুল্য সংস্করণটি হ'ল:

SELECT sum(numbackends) FROM pg_stat_database;

সেক্ষেত্রে আমি আশা করব যে সংস্করণটি দ্বিতীয়টির তুলনায় কিছুটা দ্রুত হবে, কারণ এটির কম সংখ্যা রয়েছে। তবে আপনি সম্ভবত কোনও পার্থক্য পরিমাপ করতে সক্ষম হবেন না।

উভয় কোয়েরি একই ডেটার উপর ভিত্তি করে, সুতরাং তারা সমানভাবে নির্ভুল হবে।


1
এগুলি সঠিকভাবে সঠিক নয়। আমার উত্তর দেখুন।
গারগেই

2
নোট করুন যে পোস্টগ্র্রেস কমান্ড লাইন সরঞ্জামটি যখন পিএসকিউএল এই কোয়েরিটি সম্পাদন করার জন্য ব্যবহৃত হয় তখন মোট সংযোগের সংখ্যা এই কোয়েরির ফলাফল - 1 যেহেতু তৈরি করা
পিএসএকিএল সংযোগটিও

25

নিম্নলিখিত কোয়েরিটি খুব সহায়ক

select  * from
(select count(*) used from pg_stat_activity) q1,
(select setting::int res_for_super from pg_settings where name=$$superuser_reserved_connections$$) q2,
(select setting::int max_conn from pg_settings where name=$$max_connections$$) q3;

2
আপনি কি 'ব্যবহৃত' এবং 'রেজ_ফর্ম_সুপার' কলামগুলি ব্যাখ্যা করতে পারেন?
বাজি

হ্যালো, ব্যবহৃত ব্যবহৃত সংযোগ, রেজ_ফর্ম_সুপার হ'ল সংযোগগুলি
সুপারুজার

12

তারা অবশ্যই বিভিন্ন ফলাফল দিতে পারে। আরও ভাল হয়

select count(*) from pg_stat_activity;

এর কারণ এটি ওএল প্রেরক প্রক্রিয়াগুলির সাথে সংযোগগুলি অন্তর্ভুক্ত করে যা নিয়মিত সংযোগ হিসাবে গণ্য হয় এবং এর দিকে গণনা করা হয় max_connections

সর্বাধিক_ওয়ালার_সেন্ডারগুলি দেখুন


2

সমস্ত স্ট্যাটাস সেশনগুলির তাদের স্থিতি অনুসারে একত্রিতকরণ (কতজন অলস, কতজন কিছু করছেন ...)

select state, count(*) from pg_stat_activity  where pid <> pg_backend_pid() group by 1 order by 1;

0

টিসিপি সংযোগের সংখ্যা আপনাকে সহায়তা করবে। মনে রাখবেন এটি কোনও নির্দিষ্ট ডাটাবেসের জন্য নয়

netstat -a -n | find /c "127.0.0.1:13306"

1
এই মন্তব্যটি একটি উইন্ডোজ ভিত্তিক ওএসের জন্য। লিনাক্সের জন্য এটি নিম্নলিখিত কিছু হতে পারে: lsof -Pni: 5432 | fgrep ">" | fgrep -i প্রতিষ্ঠা | wc -l
XXL

3
এটি কোনও এসকিউএল কোয়েরি নয়, দয়া করে নির্দিষ্ট প্রশ্নগুলিতে গোলমাল যুক্ত করবেন না।
বাগম্যানট 123

-3

উত্স কোডটি দেখে, দেখে মনে হচ্ছে pg_stat_database কোয়েরি আপনাকে সমস্ত ব্যবহারকারীর জন্য বর্তমান ডাটাবেসে সংযোগের সংখ্যা দেয়। অন্যদিকে, pg_stat_activity কোয়েরি কেবল অনুসন্ধানকারী ব্যবহারকারীর জন্য বর্তমান ডাটাবেসে সংযোগের সংখ্যা দেয়।


1
এটা ভুল। pg_stat_activity ব্যবহারকারী নির্বিশেষে সমস্ত সংযোগ দেয়। এরপরে এটি আপনাকে এমন একটি ক্ষেত্র দেয় যা বলছে এটি কোন ব্যবহারকারী, আপনি যদি চান তবে আপনি ফিল্টার করতে পারেন। আপনি যদি একই ব্যবহারকারী বা সুপারভাইজার না হন তবে এটি আপনাকে কোয়েরিটির পাঠ্য দেবে না , তবে এটি সংযোগটি প্রদর্শন করবে।
ম্যাগনাস হাগান্ডার

3
তুমি ঠিক বলছো. আমি দেখার সংজ্ঞাটি খুব কাছ থেকে দেখিনি। ইউজারিডে সীমাবদ্ধতা কেবলমাত্র pg_authid এর সাথে যোগ দেওয়ার জন্য। আমার ভুল.
ব্রায়ান এল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.