Pg_activity'de "işlem yalıtım düzeyini göster" ile birden çok sorgu alma


10

Üretim kullanımım için PostgreSQL sunucusu kullanıyorum.

Böyle bir sorguyu tetiklediğimde

select * from pg_stat_activity

sunucumda, sorguların% 98'ini alıyorum

SHOW TRANSACTION ISOLATION LEVEL

ve sunucum sadece 100 bağlantıyı kabul ettiğinden, daha fazla ilerleyemiyorum.

Bu neden oluyor? Tüm bu sorguları nasıl engelleyebilirim?


4
Postgres kendi başına bağlantı oluşturmaz. Bu bağlantıları oluşturan ve bu sorguları çalıştıran uygulamanızdır. Bir bağlantı havuzu veya benzeri bir şey olabilir.
a_horse_with_no_name

2
Bir Java uygulaması mı kullanıyorsunuz? HikariCP mi, yoksa başka bir bağlantı havuzulama seçeneği mi kullanıyorsunuz? HikariCP kullanıyorum ve giriş psqlyapıp yaptığımda benzer bir şey görüyorum select query from pg_stat_activity;... Bunun neden olduğunu merak ediyordum; benim tahminim bu HikariCP bağlantılarını "taze" tuttuğu bir mekanizmadır.
Chris W.

Yanıtlar:


2

Eğer oradalarsa; oradalar, ama sihirli bir şekilde ince havadan çıkmadılar. Geri gelmeni ve bize senin durumunda ne olduklarını anlatmanı isterken, bu genellikle iki şeyden biri,

  1. Bağlantı havuzu oluşturma
  2. ORM veya SQL soyutlama

Bazen bu adamlar boş işlemlere bağlanır ve başlar veya bir işlem hazırlar. Her zaman kötü bir kütüphanenin sonucudur. Kütüphane veritabanı için yeni veya yeni ise mazur görülebilir. Kütüphane yaşındaysa ve bunu yapıyorsa, üzerinde çok fazla gözlerinin olmadığını ve alternatiflere bakacağından şüphelenirim.

Yorumlardan,

Postgres kendi başına bağlantı oluşturmaz. Bu bağlantıları oluşturan ve bu sorguları çalıştıran uygulamanızdır. Bir bağlantı havuzu veya benzeri bir şey olabilir. - a_horse_with_no_name 10 Eylül 13:03

Bir Java uygulaması mı kullanıyorsunuz? HikariCP mi, yoksa başka bir bağlantı havuzulama seçeneği mi kullanıyorsunuz? HikariCP kullanıyorum ve psql giriş ve pg_stat_activity sorgu seçin yapmak benzer bir şey görüyorum; ... Ben de bunun neden olduğunu merak ediyordum; benim tahminim bu HikariCP bağlantılarını "taze" tuttuğu bir mekanizmadır. - Chris W. 16 Ocak 16:22

Bunu yapmanın koşer yolu mümkün olsa da bir bağlantı tutarak bir girişim olduğunu "taze" bir şeydir böyle

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

Bunun yerine bu yöntemi kullanmak için bir hata raporu dosyalamak isteyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.