it-swarm.asia

Postgres: Veritabanı sunucusu tarafından yürütülen tüm SQL ifadelerini nasıl görebilirim?

Performans nedenleriyle bir uygulamanın veritabanına karşı yaptığı her SQL deyimini gözden geçirme sürecindeyim. PostgreSQL veritabanı sunucusu tarafından yürütülen tüm ifadeleri günlüğe kaydetmenin kolay bir yolu var mı? Teşekkürler.

23
Jin Kim

Aradığınız yapılandırma seçeneği log_statement = "all" (yalnızca ifadeleri istiyorsanız) veya log_min_statement_duration = <some number> "yavaş" sorgulardan hemen sonraysanız ("yavaş" değerinin bir kısmı için). Günlük yapılandırması hakkında daha fazla bilgi için bkz. http://www.postgresql.org/docs/current/static/runtime-config-logging.html .

27
womble

auto_explain modülü bunun için çok yararlıdır. Yalnızca ifadeleri günlüğe kaydetmekle kalmaz, yürütme planlarını günlüğe kaydeder ve PL/PgSQL işlevleri içinde çalışan ifadeleri bile günlüğe kaydedebilir. Analizi etkinleştirmediğiniz sürece isabet performansı oldukça düşüktür, bu durumda tüm sorgular için oldukça fazla zamanlama yükü ile karşılaşırsınız.

Görmek auto_explain .

5
Craig Ringer

Tabii ki, en yavaş sorguları kendiniz tespit edebilirsiniz, ancak pgFouine - bir PostgreSQL günlük analizörü kullanmanızı tavsiye ederim. Kurulumu kolay ve gerçekten kullanışlı.

Örnek raporlar: burada ve burada .

3
Severe_admin