次のどれが正確ですか?PostgreSQL DBの現在の接続数を取得する正しいクエリ
select numbackends from pg_stat_database;
select count(*) from pg_stat_activity;
次のどれが正確ですか?PostgreSQL DBの現在の接続数を取得する正しいクエリ
select numbackends from pg_stat_database;
select count(*) from pg_stat_activity;
必要な2つは同等ではありません。最初の1に相当するバージョンは次のようになります。その場合
SELECT sum(numbackends) FROM pg_stat_database;
を、私はそれをカウントするより少ない行を持っているという理由だけで、そのバージョンが第二のものよりわずかに速いことを期待します。しかし、違いを測定することはできません。
両方のクエリはまったく同じデータに基づいているため、同等の精度になります。
ソースコードを見てからでpg_stat_databaseのクエリは、すべてのユーザーのために、現在のデータベースにあなたの接続の数を与えるように、それはそうです。一方、pg_stat_activityクエリは、クエリを行うユーザの現在のデータベースへの接続数を示します。
これは間違っています。 pg_stat_activityは、ユーザにかかわらず、すべての接続も与えます。次に、それがどのユーザーかを示すフィールドを表示し、必要に応じてフィルタリングすることができます。同じユーザーでもスーパーユーザーでもない場合でも、クエリの*テキストは表示されませんが、接続は表示されます。 –
あなたはそうです。私はビューの定義を十分に見ていませんでした。ユーザーIDの制限は、pg_authidとの結合のみです。私の間違い。 –
tcp接続はありません。特定のデータベースではないことを覚えておいてください。
netstat -a -n | find/c "127.0.0.1:13306"
何が良いか? –
精度の点ではより良い –