Postgres: Tüm SQL ifadelerini veritabanı sunucusu tarafından çalıştırıldığını nasıl görebilirim?


Yanıtlar:


27

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.


1
Tüm beyanların kaydedilmesi bir performans katilidir (resmi belgelerde belirtildiği gibi). Ancak, 8.4 almanın güzel bir özelliği vardır explain analyzeo 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ı
tamamsa

5
Log_statement = 'mod' seçeneğini gerçekten seviyorum. Yalnızca, seçilen tüm ifadeleri oluşturur, günceller, siler ve atlar. Hangi kodun bir alanı çırptığını anlamaya çalışıyorsanız harika.
Don Kirkby

5

auto_explainModü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_explainBelgelere bakınız .


"Auto_explain" modülünün bir modül olduğunu ve dolayısıyla AWS RDS Postgres veritabanlarında
çalışmadığını unutmayın

1
@ johntellsall RDS destekliyor auto_explain, kutsanmış modüller listesinde. En belgelere bakın docs.aws.amazon.com/AmazonRDS/latest/UserGuide/...
Craig Ringer

3

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.

Örnek raporlar: burada ve burada .


Bir projede pgFouine kullandım ve bir endeksin çok yardımcı olacağı birkaç yer tanımladım.
Paul Tomblin
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.