Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
pg_stat_statements , Lakebase Postgres veritabanınızda SQL deyimi yürütmesinin ayrıntılı istatistiksel görünümünü sağlayan bir Postgres uzantısıdır. Yürütme sayıları, toplam ve ortalama yürütme süreleri ve daha fazlası gibi bilgileri izler ve SQL sorgu performansını analiz edip iyileştirmenize yardımcı olur.
pg_stat_statements ne zaman kullanılır?
İhtiyacınız olduğunda kullanın pg_stat_statements :
- Ayrıntılı sorgu yürütme istatistikleri ve performans ölçümleri
- Yavaş veya sık yürütülen sorguların tanımlanması
- Sorgu performansı analizi ve iyileştirme içgörüleri
- Veritabanı iş yükü analizi ve kapasite planlaması
- Özel izleme araçları ve panolarıyla entegrasyon
pg_stat_statements etkinleştirme
Uzantı Lakebase pg_stat_statements Postgres'te kullanılabilir. Bunu etkinleştirmek için:
SQL düzenleyicisini veya Postgres istemcisini kullanarak veritabanınıza bağlanın.
Uzantıyı oluşturmak için aşağıdaki SQL komutunu çalıştırın:
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;Uzantı, oluşturulduktan hemen sonra istatistik toplamaya başlar.
Veri kalıcılığı
Uzantı tarafından pg_stat_statements toplanan istatistikler bellekte depolanır ve Lakebase işleminiz askıya alındığında veya yeniden başlatıldığında korunmaz. Örneğin, hesaplama kaynaklarınız etkinlik dışı kalma nedeniyle azaltılırsa, tüm mevcut istatistikler kaybolur. İşleminiz yeniden başlatıldıktan sonra yeni istatistikler toplanır.
Bu davranış şu anlama gelir:
- İşlem yeniden başlatıldıktan veya askıya alındıktan sonra istatistikler sıfırlandı
- Uzun süre çalışan performans analizi tutarlı işlem kullanılabilirliği gerektirir
- Planlı bakım veya yeniden başlatmalardan önce önemli istatistikleri dışarı aktarmak isteyebilirsiniz
Uyarı
İşlem yaşam döngüsü olaylarının geçmiş performans verilerine ihtiyacınız varsa, izleme sorgularınızı düzenli olarak çalıştırmayı ve sonuçları dışarıdan depolamayı göz önünde bulundurun.
Daha fazla bilgi edinin: Postgres uzantıları
Sorgu yürütme istatistikleri
Uzantıyı etkinleştirdikten sonra, görünümü kullanarak yürütme istatistiklerini pg_stat_statements sorgulayabilirsiniz. Bu görünüm, farklı veritabanı sorgusu başına çeşitli istatistikleri gösteren bir satır içerir:
SELECT * FROM pg_stat_statements LIMIT 10;
Görünümde aşağıdakiler gibi ayrıntılar bulunur:
| kullanıcı kimliği | dbid | queryid | soru | Aramalar |
|---|---|---|---|---|
| 16391 | 16384 | -9047282044438606287 | SELECT * FROM kullanıcıları; | 10 |
Sütunların ve açıklamaların tam listesi için PostgreSQL belgelerine bakın.
Anahtar izleme sorguları
Veritabanınızın performansını analiz etmek için şu sorguları kullanın:
En yavaş sorguları bulma
Bu sorgu, en yüksek ortalama yürütme süresine sahip sorguları tanımlar ve bu da iyileştirme gerektiren verimsiz sorguları gösterebilir:
SELECT
query,
calls,
total_exec_time,
mean_exec_time,
(total_exec_time / calls) AS avg_time_ms
FROM pg_stat_statements
ORDER BY mean_exec_time DESC
LIMIT 20;
En sık yürütülen sorguları bulma
En sık yürütülen sorgular genellikle kritik yollar ve iyileştirme adaylarıdır. Bu sorgu, daha iyi dizin oluşturmadan yararlanabilecek sorguları tanımlamaya yardımcı olmak için önbellek isabet oranlarını içerir:
SELECT
query,
calls,
total_exec_time,
rows,
100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
FROM pg_stat_statements
ORDER BY calls DESC
LIMIT 20;
En yüksek G/Ç'ye sahip sorguları bulma
Bu sorgu, genel veritabanı performansını etkileyebilecek en fazla disk G/Ç işlemi gerçekleştiren sorguları tanımlar:
SELECT
query,
calls,
shared_blks_read + shared_blks_written AS total_io,
shared_blks_read,
shared_blks_written
FROM pg_stat_statements
ORDER BY (shared_blks_read + shared_blks_written) DESC
LIMIT 20;
En çok zaman alan sorguları bulma
Bu sorgu, tüm çalıştırmalarda en fazla toplam yürütme süresini tüketen sorguları tanımlar:
SELECT
query,
calls,
total_exec_time,
mean_exec_time,
rows
FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 10;
Çok satır döndüren sorguları bulma
Bu sorgu, sayfalandırma veya filtrelemeden yararlanabilecek büyük sonuç kümeleri döndüren sorguları tanımlar:
SELECT
query,
calls,
rows,
(rows / calls) AS avg_rows_per_call
FROM pg_stat_statements
ORDER BY rows DESC
LIMIT 10;
İstatistikleri sıfırla
tarafından pg_stat_statementstoplanan istatistikleri sıfırlamak için:
Uyarı
Yalnızca databricks_superuser rollerin bu işlevi yürütmek için gerekli ayrıcalığı vardır. Lakebase projesiyle oluşturulan varsayılan role, databricks_superuser rolüne üyelik verilir. Lakebase Uygulamasında oluşturulan rollere isteğe bağlı olarak bu üyelik verilebilir.
SELECT pg_stat_statements_reset();
Bu işlev, yürütme süreleri ve SQL deyimleri için sayımlar gibi birikmiş tüm istatistiksel verileri temizler ve yeni veri toplamaya başlar. Özellikle performans istatistikleri toplamaya yeni bir başlangıç yapmak istediğinizde kullanışlıdır.
Kaynaklar
Daha fazla bilgi edinin: PostgreSQL belgeleri