pg_stat_statements: En Önemli Sorgular
pg_stat_statements'i etkinleştirin, toplam süreye göre en ağır sorguları bulun ve optimizasyon için bunları hedefleyin.
pg_stat_statements: En Önemli Sorgular, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
pg_stat_statements Size Neler Sağlar
Her sorgunun şekline göre normalleştirilmiş, birikimli kaydı — PostgreSQL'deki en yararlı DBA aracı.
Etkinleştirme
Bu bir contrib eklentisidir. shared_preload_libraries'e ekleyin ve yeniden başlatın:
-- postgresql.conf
shared_preload_libraries = 'pg_stat_statements'
-- After restart:
CREATE EXTENSION pg_stat_statements;Toplam Süreye Göre En Çok Kaynak Tüketen Sorgular
"CPU'm nereye gidiyor" sorgusu:
SELECT calls,
total_exec_time,
mean_exec_time,
rows,
query
FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 10;Çağrı Başına Yavaş Sorgular
Her çağrıda yavaş olan sorgular:
SELECT mean_exec_time, calls, query
FROM pg_stat_statements
WHERE mean_exec_time > 100
ORDER BY mean_exec_time DESC
LIMIT 20;Sık Çalışan Düşük Maliyetli Sorgular
Bir milyon adet 1 ms'lik sorgu da hâlâ sorundur:
SELECT calls, mean_exec_time, total_exec_time, query
FROM pg_stat_statements
ORDER BY calls DESC
LIMIT 20;Normalleştirme
pg_stat_statements, sorguları normalleştirilmiş şekillerine göre gruplandırır; sabit değerler $N ile değiştirilir. Böylece "SELECT * FROM users WHERE id = 1" ve "= 2" aynı satır olur.
İstatistikleri Sıfırlama
Yeni davranışı ölçmek için bir dağıtımdan sonra temiz bir başlangıç yapın:
SELECT pg_stat_statements_reset();G/Ç ve CPU Süresi
Daha yeni PG sürümleri yürütme süresini ayırır. shared_blks_hit / shared_blks_read, önbellek ile disk arasındaki fark hakkında ipucu verir:
SELECT query, shared_blks_hit, shared_blks_read,
shared_blks_read::FLOAT / NULLIF(shared_blks_hit + shared_blks_read, 0) AS read_ratio
FROM pg_stat_statements
ORDER BY shared_blks_read DESC LIMIT 20;JIT ve Planlama Süresi
PG 13 ve sonraki sürümler total_plan_time değerini sunar. Bazı sorgular çalışmaktan çok PLANNING için zaman harcar — bu genellikle hazırlanmış ifadelerin kullanılması gerektiğinin işaretidir.
Veritabanı Başına / Kullanıcı Başına İstatistikler
pg_stat_statements küme genelindedir. Veritabanı başına / kullanıcı başına görünümler için dbid ve userid sütunlarına göre filtreleyin.
EXPLAIN ANALYZE ile Birlikte Kullanma
pg_stat_statements hangi sorguların yavaş olduğunu söyler. EXPLAIN ANALYZE ise neden yavaş olduklarını söyler.
Dikkat Edilmesi Gerekenler
- Veritabanı ve kullanıcı başına birikim sorunları gizleyebilir — toplam değere bakın
- Satır başına süreyi değil, yalnızca çağrı başına toplam süreyi izler
- Yeniden başlatıldığında veya sıfırlama çağrısında sıfırlanır
Özet
pg_stat_statements, üretim ortamında zorunludur.
- Toplam süreye göre en üsttekiler → en büyük kazanımlar
- Ortalama süreye göre en üsttekiler → tutarlı yavaşlık
- Çağrı sayısına göre en üsttekiler → sıklık sorunu
- Düzeltmeler için EXPLAIN ile birlikte kullanın
Hızlı Kontrol
pg_stat_statements'i etkinleştirdiniz. Araştırmak için hangi sorgu en büyük performans kazanımlarını sağlar?
Sıkça Sorulan Sorular
“pg_stat_statements: En Önemli Sorgular” dersi ücretsiz mi?
Evet — “pg_stat_statements: En Önemli Sorgular” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“pg_stat_statements: En Önemli Sorgular” dersinde ne öğreneceğim?
pg_stat_statements'i etkinleştirin, toplam süreye göre en ağır sorguları bulun ve optimizasyon için bunları hedefleyin. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“pg_stat_statements: En Önemli Sorgular” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- pg_stat_statements: En Önemli Sorgular
- Günlük Analizi için pgBadger
- Bağlantı Havuzlama: PgBouncer
- Kapasite Planlama ve Şişkinlik Denetimleri