Performans nedeniyle bir uygulamanın veritabanına karşı yaptığı her SQL ifadesini inceleme sürecinde bulunuyorum. PostgreSQL veritabanı sunucusu tarafından yürütülen tüm ifadeleri kaydetmenin kolay bir yolu var mı? Teşekkürler.
Performans nedeniyle bir uygulamanın veritabanına karşı yaptığı her SQL ifadesini inceleme sürecinde bulunuyorum. PostgreSQL veritabanı sunucusu tarafından yürütülen tüm ifadeleri kaydetmenin kolay bir yolu var mı? Teşekkürler.
Yanıtlar:
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ş" sorguların hemen ardındanysanız ("yavaş" bazı değerleri için). Bkz http://www.postgresql.org/docs/current/static/runtime-config-logging.html günlüğü yapılandırması hakkında daha fazla ayrıntı için.
explain analyze
o idam edildi kravata yavaş sorgu, henüz serbest bırakılmaz 8.4 olarak bu ile test başlamak isteyebilirsiniz ama o happend bilmek güzel bir seçenek var İcra esnasında , eğer analiz açıklama çıktısı
auto_explain
Modül bunun için çok yararlıdır. Yalnızca ifadeleri kaydetmeyecek, yürütme planlarını da kaydedecek ve hatta PL / PgSQL işlevlerinde çalışan ifadeleri de kaydedebilir. Analizi yapmadığınız sürece performans isabet oranı oldukça düşüktür; bu durumda tüm sorgular için bir miktar zamanlama ek yükü alırsınız.
auto_explain
Belgelere bakınız .
auto_explain
, kutsanmış modüller listesinde. En belgelere bakın docs.aws.amazon.com/AmazonRDS/latest/UserGuide/...
Elbette, en yavaş sorguları kendiniz tespit edebilirsiniz, ancak bir PostgreSQL günlük analizcisi olan pgFouine'yi kullanmanızı öneririm . Kurulumu kolay ve gerçekten kullanışlıdır.