pengembangan-web-mp-pd.com

Postgres: Bagaimana saya bisa melihat semua pernyataan SQL dijalankan oleh server database?

Saya sedang dalam proses meninjau setiap pernyataan SQL yang dibuat aplikasi terhadap database, untuk alasan kinerja. Apakah ada cara mudah untuk mencatat semua pernyataan yang dijalankan oleh server database PostgreSQL? Terima kasih.

23
Jin Kim

Opsi konfigurasi yang Anda cari adalah log_statement = "all" (jika Anda hanya menginginkan pernyataan), atau log_min_statement_duration = <some number> jika Anda hanya setelah permintaan "lambat" (untuk beberapa nilai "lambat"). Lihat http://www.postgresql.org/docs/current/static/runtime-config-logging.html untuk detail lebih lanjut tentang konfigurasi pembuatan log.

27
womble

auto_explain modul sangat berguna untuk ini. Itu tidak hanya akan mencatat pernyataan, itu akan mencatat rencana pelaksanaannya dan bahkan dapat mencatat pernyataan yang dijalankan dalam fungsi PL/PgSQL. Hit kinerja cukup rendah kecuali Anda mengaktifkan analisis, dalam hal ini Anda mengeluarkan sedikit overhead waktu untuk semua pertanyaan.

Lihat auto_explain dalam dokumentasi.

5
Craig Ringer

Tentu saja, Anda dapat mendeteksi kueri paling lambat sendiri, tetapi saya menyarankan Anda untuk menggunakan pgFouine - penganalisis log PostgreSQL. Sangat mudah untuk menginstal dan sangat berguna.

Contoh laporan: di sini dan di sini .

3
Severe_admin