Mendapatkan beberapa kueri dengan "tampilkan level isolasi transaksi" di pg_activity

10

Saya menggunakan server PostgreSQL untuk penggunaan produksi saya.

Ketika saya memunculkan query seperti

select * from pg_stat_activity

di server saya, saya mendapatkan 98% pertanyaan seperti

SHOW TRANSACTION ISOLATION LEVEL

dan server saya hanya menerima 100 koneksi, jadi saya tidak dapat melanjutkan lebih jauh.

Mengapa ini terjadi? Bagaimana saya bisa memblokir semua pertanyaan ini?

Yogesh Prajapati
sumber
4
Postgres tidak membuat koneksi sendiri. Aplikasi Anda yang membuat koneksi tersebut dan menjalankan kueri tersebut. Mungkin kumpulan koneksi atau yang serupa.
a_horse_with_no_name
2
Apakah Anda menjalankan aplikasi Java? Menggunakan HikariCP, atau mungkin opsi penyatuan koneksi lainnya? Saya menggunakan HikariCP dan melihat hal serupa ketika saya masuk psqldan melakukan select query from pg_stat_activity;... Saya juga bertanya-tanya mengapa ini terjadi; Dugaan saya adalah ini adalah mekanisme di mana HikariCP menjaga koneksi "segar".
Chris W.

Jawaban:

2

Jika mereka ada di sana; mereka ada di sana, tetapi mereka tidak secara ajaib keluar dari udara tipis. Sementara saya ingin Anda kembali dan memberi tahu kami apa yang ada dalam kasus Anda, biasanya satu dari dua hal,

  1. Pooling koneksi
  2. ORM atau abstraksi SQL

Terkadang orang-orang ini terhubung dan memulai transaksi kosong, atau menyiapkan transaksi. Itu selalu merupakan hasil dari perpustakaan yang buruk. Itu bisa dimaafkan jika perpustakaan baru atau baru ke database. Jika perpustakaan sudah berumur bertahun-tahun dan melakukan hal ini, saya akan curiga mereka tidak terlalu memperhatikan dan mencari alternatif.

Dari komentar,

Postgres tidak membuat koneksi sendiri. Aplikasi Anda yang membuat koneksi tersebut dan menjalankan kueri tersebut. Mungkin kumpulan koneksi atau yang serupa. - a_horse_with_no_name 10 Sep 13 'jam 9:03

Apakah Anda menjalankan aplikasi Java? Menggunakan HikariCP, atau mungkin opsi penyatuan koneksi lainnya? Saya menggunakan HikariCP dan melihat hal serupa ketika saya masuk ke psql dan melakukan kueri pemilihan dari pg_stat_activity; ... Saya juga bertanya-tanya mengapa ini terjadi; Dugaan saya adalah ini adalah mekanisme di mana HikariCP menjaga koneksi "segar". - Chris W. 16 Januari 16 pukul 19:22

Meskipun mungkin itu merupakan upaya menjaga koneksi "segar" cara halal untuk melakukan itu adalah sesuatu seperti ini

result = PQexec(imp_dbh->conn, "/* DBD::Pg ping test v3.6.0 */");

Anda mungkin ingin mengajukan laporan bug untuk menggunakan metode itu.

Evan Carroll
sumber