Postgres'im saniyede kaç sorgu yürütüyor?


Yanıtlar:


11

Tüm veritabanlarında yürütülen toplam işlem sayısını okumak için bu sorguyu kullanın :

SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;

Aynı sayacı yalnızca bir veritabanı için istiyorsanız, şunu kullanın:

SELECT xact_commit+xact_rollback FROM pg_stat_database WHERE datname = 'mydb';

TPS'yi (saniyedeki işlemler) hesaplamak için, sorguyu birkaç kez çalıştırın ve zaman aralığı içindeki farkı hesaplayın.

Bunun için hazır araçlar var, bunlardan biri http://bucardo.org/wiki/Check_postgres

Daha fazla bilgi: http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW


Güncelleme: Konrad sorusunu yanlış anladığımı düzeltti. Amaç, işlemleri değil, sorguları saymaktı.

Sorguları nasıl sayabilirim?

Yöntem 1

Kullanım pg_stat_statements contrib.

Yöntem 2

Temsili bir süre boyunca sorguların tam günlüğünü etkinleştirin.

Tam günlük kaydını etkinleştirmek için PostgreSQL 9.0 - 9.3 için aşağıdaki ayarları değiştirin: postgresql.conf

logging_collector = on
log_line_prefix = '%t '
log_rotation_size = 1GB
log_statement = all

Ayrıca sorgu süresini görmek istiyorsanız, ayarlayabilirsiniz log_min_duration_statement = 0 yerine ait log_statement = all. Bu, sorgu ayarlama için çok kullanışlıdır.

Ardından config'i yeniden yükleyin (yeniden başlatın veya HUP) ve trafiği tahmin etmek için yeterli günlük toplayın.

Not: Her iki yöntem de kullanıcı tanımlı işlevlere katıştırılmış sorguları içermez.


Saniyedeki işlemleri nasıl hesaplayacağımı biliyorum. Soru, özellikle saniyedeki sorgularla ilgilidir. Bir işlemin 0 veya daha fazla sorgusu olabilir.
Konrad Garus
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.