| 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
| 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 |