EXPLAIN komutunun saat biçimini anlama - Postgres


14

Belirli bir sorguda EXPLAIN ANALYZE komutunu çalıştırdığımda, çıktı zaman değerini yorumlamakta zorlanıyorum. Örneğin (gerçek zaman = 8163.890..8163.893). İç ondalık sayılar yinelenen karakterleri temsil ediyor mu ?? Maalesef, bu asil bir soru olabilir, ancak sonuçları doğru şekilde yorumladığımdan emin olmak istiyorum.

   ->  GroupAggregate  (cost=2928781.21..2929243.02 rows=1 width=27712) (actual time=8163.890..8163.893 rows=1 loops=1)

Yanıtlar:


19

actual time=8163.890..8163.893 anlamına geliyor

Bu adımı başlatmak ("başlangıç") 8163.890ms aldı
Tüm adımı çalıştırmak 8163.893ms aldı

Bu durumda, bu adımın başlangıç ​​aşamasında neredeyse tüm çalışmalar yapıldı.

Düzenleme :
Aynı mantık maliyet bilgisine "uygulanır"

cost=2928781.21..2929243.02 anlamına geliyor:

Bu adımı başlatma maliyeti şu şekilde tahmin edildi: 2928781.21 Adımı
gerçekleştirme maliyeti şu şekilde tahmin edildi: 2929243.02

("maliyet" in bir birimi olmadığını unutmayın - rastgele bir değerdir)

Bu da burada açıklanmaktadır: http://www.postgresql.org/docs/current/static/using-explain.html


Bilgi ve bağlantı için teşekkürler - Ben de biraz eski olsa da, bu belgeyi yararlı buldum
— Jmoney38

Bağlantı için teşekkürler. Belge gerçekten modası geçmiş değil. PostgreSQL'in daha yeni sürümleri planda daha fazla bilgi gösterir, ancak temel ilkeler hala geçerlidir.
— a_horse_with_no_name

İç içe bir döngüde bununla bir açıklama çözümlemesini nasıl yorumluyorsunuz (actual time=0.002..0.002 rows=0 loops=119878)? Döngü başına ortalama sıfır yararsız olan yuvarlatılmış varsayalım, ama bu kez gerçekten yürütme maliyeti tamamen başlangıç ​​maliyeti oluşur önemsiz anlamına mı geliyor?
— Davos

5

İlk sayı, bu adımdaki ilk satırı döndürmenin ne kadar sürdüğüdür. İkinci sayı, son satırı döndürmenin ne kadar sürdüğü.

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.