Re: EXPLAIN ANALYZE

From: Devrim GÜNDÜZ <devrim(at)gunduz(dot)org>
To: Namık Güngör <namik(at)ofisiletisim(dot)com>
Cc: pgsql-tr-genel(at)postgresql(dot)org
Subject: Re: EXPLAIN ANALYZE
Date: 2010-09-06 06:41:50
Message-ID: 1283755310.4665.20.camel@hp-laptop2.gunduz.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-tr-genel

On Sun, 2010-09-05 at 01:38 +0300, Namık Güngör wrote:
> EXPLAIN ANALYZE sonuçlarını nasıl yorumlamalıyım?

Aşağıda örnek vereceğim gerçi ama bunu ayrıca yazayım: Çıktıyı sondan
başa okumak gerekli.

> " Sort Method: external merge Disk: 20696kB"

diskte sort yapmış, yani base/pgsql_tmp içinde sort etmiş bunu. Sort
sırasında 20MB kadar alan kullanmış.

Peki ne yapmak gerekli? Sort işleminde work_mem kullanıldığı için,
sadece bu sorgu için work_mem'i 20 MB'ın üzerine çıkarmak işlemi rame
taşır ve bu da başarımı arttırır:

SET work_mem TO '20MB';
SELECT...

gibi.

> " -> Seq Scan on kimlik (cost=0.00..14610.02
> rows=533302
> width=20)

kimlik tablosunda seq scan yapılmış.

Cost kısmına gelince: Bunlar "beklenen" değerler. Startup cost= 0, son
cost=14610. Bunların birimi yok, karşılaştırmalı şeyler. Bu sorgudan
533302 satır "bekleniyor". Yani son analyze işleminden edinilen bilgiler
(pg_stat* tablolarından alınan değerler bunlar yani), bu sorgudan bu
kadar satır bekliyor. Bu değeri aklımızda tutalım, bir sonraki kısımda
yardımcı olacak.

width=20 de şu demek: Gelen her satırın ortalama genişliği 20 byte.

> (actual time=0.029..405.492 rows=534513 loops=1)"
> "Total runtime: 4482.092 ms"

Sorguya başlamak için 0.029 ms geçmiş, bu sorgunun parse, rewrite,plan
için gereken süre. Çalıştırma süresi (sadece o bölümün) 405ms. Bu
işlemden 534513 satır dönmüş. Beklenen satır ile çok yakın. Bu iyi
birşey, istatistiklerin güncel olduğu bilgisini veriyor.

Burada seq scan'den kurtulma şansınız var mı, ona bakın. Eğer count(*)
gibi birşey değilse ya da gerçekten tablonun hepsini taraması
gerekmiyorsa, index kullanmayı deneyebilirsiniz.

Hatta şunu da açıklayayım:

> Sort Key: ((tahlilistekleri.hastano)::text)"
> " Sort Method: quicksort Memory: 25kB"

Bakın üsttekinden farklı olarak burada memory'de sort var, iyi birşey.

Umarım yardımcı olmuştur.
--
Devrim GÜNDÜZ
PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer
PostgreSQL RPM Repository: http://yum.pgrpms.org
Community: devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
http://www.gunduz.org Twitter: http://twitter.com/devrimgunduz

In response to

Browse pgsql-tr-genel by date

  From Date Subject
Next Message Namık Güngör 2010-09-06 19:16:19 view lar arasındaki performans farkı
Previous Message Namık Güngör 2010-09-04 22:38:22 EXPLAIN ANALYZE