EXPLAIN deyimini anlama

Tamamlandı

Sorgunun yürütme planını görüntülemek için EXPLAIN deyimini kullanın. EXPLAIN herhangi bir SELECT, INSERT, UPDATE, DELETE, VALUES, EXECUTE, DECLARE veya CREATE TABLE AS deyimiyle kullanılabilir.

EXPLAIN, sorgunun yürütme planını görüntüleyerek PostgreSQL: bir deyimi nasıl yürütür, dizinlerin kullanılıp kullanılmadığını, tabloların nasıl birleştiğini ve sorgunun notional maliyetini anlamanıza olanak sağlar.

EXPLAIN söz dizimi şöyledir:

EXPLAIN [ (parameter [, ...] ) ] statement

İsteğe bağlı parametreler şunlardır:

  • ANALİZ
  • AYRINTILI
  • MALİYET
  • ARABELLEK
  • BİÇİM

Örneğin:

EXPLAIN ANALYZE SELECT * FROM category ORDER BY cat_id;

Bu basit sorgu aşağıdaki bilgileri döndürür:

Sorgu Planını gösteren ekran görüntüsü.

ANALİZ

Bu seçenek komutu çalıştırır ve sorgu planını geri döndürür. İfadenin çıktısı göz ardı edilir, ancak ifade yine de yürütülür. Değişikliklerin veritabanında insert, UPDATE veya DELETE gibi değişiklikler yapan bir sorguyla uygulanmasını önlemek için ROLLBACK ve EXPLAIN ANALYZE deyimlerini birleştirebilirsiniz. Örneğin:

BEGIN;

> EXPLAIN ANALYZE INSERT INTO Animal 
> (ani_id, name, weight_kg, cat_id, enc_id) 
> VALUES (28, 'Robin Robin', 0.5, 1, 2);

ROLLBACK;

AYRINTILI

Aşağıdakiler dahil olmak üzere ek bilgileri görüntüler:

  • plan ağacındaki her düğüm için çıkış sütunu listesi
  • şema nitelikli tablo ve işlev adları
  • ifadelerdeki değişken adları ve tablo takma adı birlikte
  • istatistiklerin görüntülendiği her tetikleyicinin adı

MALİYET

Tahmini başlangıç maliyetini ve toplam maliyetin yanı sıra her satırın tahmini satır sayısını ve tahmini genişliğini içerir.

ARABELLEK

Arabellekler yalnızca ANALİZ seçeneğiyle kullanılabilir. PostgreSQL, sık kullanılan verileri bellekte depolamak için En Son Kullanılan (LRU) önbelleğini kullanır. Arabellekler, verilerin ne kadarının önbellekten geldiğini ve ne kadarının diskten alınıldığını görüntüler. Paylaşılan, yerel ve geçici blokların isabet, okuma ve yazma sayısını görüntüler. BUFFERS tarafından sağlanan veriler, sorgunun G/Ç yoğunluklu bölümlerini anlamanıza yardımcı olabilir.

BİÇİM

Çıkış biçimini tanımlar. XML, JSON ya da YAML, METİN ile aynı bilgileri içerir, ancak programların kullanması daha kolay bir biçimdedir. METİN varsayılan değerdir.