Manakah dari dua berikut ini yang lebih akurat?
select numbackends from pg_stat_database;
select count(*) from pg_stat_activity;
sql
database
postgresql
dbconnection
Murali VP
sumber
sumber
Jawaban:
Keduanya membutuhkan tidak setara. Versi yang setara dari yang pertama adalah:
Dalam hal ini, saya berharap versi itu sedikit lebih cepat daripada yang kedua, hanya karena memiliki lebih sedikit baris untuk dihitung. Tetapi Anda tidak akan mungkin bisa mengukur perbedaan.
Kedua pertanyaan didasarkan pada data yang persis sama, sehingga mereka akan sama akuratnya.
sumber
Permintaan berikut ini sangat membantu
sumber
Mereka pasti dapat memberikan hasil yang berbeda. Yang lebih baik adalah
Itu karena itu termasuk koneksi ke proses pengirim WAL yang diperlakukan sebagai koneksi biasa dan diperhitungkan
max_connections
.Lihat max_wal_senders
sumber
Agregasi semua sesi postgres per statusnya (berapa banyak yang menganggur, berapa banyak yang melakukan sesuatu ...)
sumber
Jumlah koneksi TCP akan membantu Anda. Ingat bahwa ini bukan untuk database tertentu
sumber
Dari melihat kode sumber, sepertinya permintaan pg_stat_database memberi Anda jumlah koneksi ke database saat ini untuk semua pengguna. Di sisi lain, permintaan pg_stat_activity memberikan jumlah koneksi ke database saat ini hanya untuk pengguna yang meminta.
sumber