Bagaimana saya bisa tahu berapa banyak query per detik yang dieksekusi oleh database Postgres saya?
postgresql
Konrad Garus
sumber
sumber
Jawaban:
Gunakan kueri ini untuk membaca jumlah total transaksi yang dieksekusi di semua database:
Jika Anda ingin penghitung yang sama hanya untuk satu database, gunakan:
Untuk menghitung TPS (transaksi per detik), jalankan kueri beberapa kali dan hitung selisih dari interval waktu.
Ada alat yang siap pakai untuk itu, salah satunya adalah http://bucardo.org/wiki/Check_postgres
Info lebih lanjut: http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW
Pembaruan: Konrad mengoreksi kesalahpahaman saya tentang pertanyaannya. Tujuannya adalah untuk menghitung kueri, bukan transaksi.
Bagaimana cara menghitung kueri?
Metode 1
Gunakan contrib pg_stat_statements .
Metode 2
Aktifkan pencatatan penuh kueri untuk periode waktu yang representatif.
Untuk mengaktifkan logging penuh, untuk PostgreSQL 9.0 - 9.3, ubah pengaturan berikut di
postgresql.conf
Jika Anda ingin melihat juga durasi query, Anda dapat mengatur
log_min_duration_statement = 0
bukan darilog_statement = all
. Ini sangat berguna untuk pencarian nada.Kemudian muat ulang config (restart atau HUP) dan kumpulkan log yang cukup untuk memperkirakan lalu lintas.
Catatan: tidak ada metode yang akan menyertakan kueri yang tertanam dalam fungsi yang ditentukan pengguna.
sumber