table of contents
other languages
other sections
EXPLAIN(7) | SQL - Dil Deyimleri | EXPLAIN(7) |
İSİM¶
EXPLAIN - bir cümlenin icra planını gösterirKULLANIM¶
EXPLAIN [ ANALYZE ] [ VERBOSE ] cümle
AÇIKLAMA¶
Bu komut, belirtilen cümle için PostgreSQL planlamacısının ürettiği icra planını gösterir. İcra planı cümle tarafından tablolara nasıl başvurulduğunu gösterir. Bu işlem, düz sıralı tarama, indeksli tarama, v.s. şeklinde yapılır. Ayrıca, eğer çok sayıda tabloya başvuruluyorsa, her tablodan gerekli satırların birarada alınması için kullanılacak katılım algoritmasını da gösterir.- Önemli:
- ANALYZE kullanıldığında
cümlenin çalıştırılacağını
unutmayın. EXPLAIN'de kullanıldığında, bir
SELECT cümlesinin döndüreceği
çıktı iptal edileceğinden, cümlenin bazı yan
etkileri varsa, onları bilemeyeceksiniz. INSERT,
UPDATE, DELETE veya EXECUTE cümleleri
üzerinde EXPLAIN ANALYZE kullanmak ve komutun etkilerinin
verinizi etkilememesini isterseniz, şu yaklaşımı
kullanabilirsiniz:
BEGIN; EXPLAIN ANALYZE ...; ROLLBACK;
PARAMETRELER¶
- ANALYZE
- Cümleyi çalıştırır ve
gerçek çalışma sürelerini gösterir.
- VERBOSE
- Planlama ağacının bir özetini
değil dahili gösteriminin tamamını gösterir.
Aslında, bu seçenek sadece hata ayıklama amacıyla
yararlıdır. VERBOSE çıktısı
explain_pretty_print yapılandırma değişkeninin
değerine bağlı olarak ya cicili bicilidir ya da
değildir.
- cümle
- İcra planını görmek istediğiniz
bir SELECT, INSERT, UPDATE, DELETE,
EXECUTE veya DECLARE cümlesi.
EK BİLGݶ
Eniyileyici kullanımı hakkındaÖRNEKLER¶
integer türünde tek bir sütunu olan 10000 satırlık bir tabloya uygulanan basit bir sorgunun planlamasını görmek için:EXPLAIN SELECT * FROM foo; QUERY PLAN --------------------------------------------------------- Seq Scan on foo (cost=0.00..155.00 rows=10000 width=4) (1 row)
EXPLAIN SELECT * FROM foo WHERE i = 4; QUERY PLAN -------------------------------------------------------------- Index Scan using fi on foo (cost=0.00..5.98 rows=1 width=4) Index Cond: (i = 4) (2 rows)
EXPLAIN SELECT sum(i) FROM foo WHERE i < 10; QUERY PLAN --------------------------------------------------------------------- Aggregate (cost=23.93..23.93 rows=1 width=4) -> Index Scan using fi on foo (cost=0.00..23.92 rows=6 width=4) Index Cond: (i < 10) (3 rows)
PREPARE query(int, int) AS SELECT sum(bar) FROM test WHERE id > $1 AND id < $2 GROUP BY foo; EXPLAIN ANALYZE EXECUTE query(100, 200); QUERY PLAN ---------------------------------------------------------- HashAggregate (cost=39.53..39.53 rows=1 width=8) (actual time=0.661..0.672 rows=7 loops=1) -> Index Scan using test_pkey on test (cost=0.00..32.97 rows=1311 width=8) (actual time=0.050..0.395 rows=99 loops=1) Index Cond: ((id > $1) AND (id < $2)) Total runtime: 0.851 ms (4 rows)
UYUMLULUK¶
SQL standardında EXPLAIN diye bir deyim yoktur.İLGİLİ BELGELER¶
ANALYZE [analyze(7)].ÇEVİREN¶
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005PostgreSQL |