SQL Function Performance

From: "Adnan DURSUN" <a_dursun(at)hotmail(dot)com>
To: <pgsql-performance(at)postgresql(dot)org>
Subject: SQL Function Performance
Date: 2006-02-12 20:25:28
Message-ID: BAY106-DAV73D3202A09EC68044469AFA040@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance



Hi all,

My database has an SQL function. The result comes in 30-40 seconds when i use the SQL function. On the other hand; The result comes
300-400 milliseconds when i run the SQL statement. Any idea ?? My database is Postgresql 8.1.2..

Function is below :

CREATE OR REPLACE FUNCTION fn_online_seferler_satis("varchar", date, int4, "varchar", "varchar")
RETURNS SETOF record AS
$BODY$
SELECT (S.KALKIS_YERI||' '||S.VARIS_YERI||' '||S.SAAT)::varchar AS SEFER_BILGI,
sum((i.bilet_ucreti + coalesce(i.police_ucreti,0)) - coalesce(i.int_artik_ucret,0)) as top_satis,
count(1)::int4 as top_koltuk
FROM T_KOLTUK_ISLEM I,
T_KOLTUK_SON_DURUM SD,
T_LOKAL_PLAN LP,
W_SEFERLER S
WHERE I.FIRMA_NO = SD.FIRMA_NO
AND I.HAT_NO = SD.HAT_NO
AND I.SEFER_KOD = SD.SEFER_KOD
AND I.PLAN_TARIHI = SD.PLAN_TARIHI
AND I.BIN_YER_KOD = SD.BIN_YER_KOD
AND I.KOLTUK_NO = SD.KOLTUK_NO
AND I.KOD = SD.ISLEM_KOD
AND SD.ISLEM = 'S'
AND LP.FIRMA_NO = I.FIRMA_NO
AND LP.HAT_NO = I.HAT_NO
AND LP.SEFER_KOD = I.SEFER_KOD
AND LP.PLAN_TARIHI = I.PLAN_TARIHI
AND LP.YER_KOD = I.BIN_YER_KOD
AND I.FIRMA_NO = $1
AND S.FIRMA_NO = LP.FIRMA_NO
AND S.HAT_NO = LP.HAT_NO
AND S.KOD = LP.SEFER_KOD
AND S.IPTAL = 'H'
AND ((I.ISLEM_TARIHI = $2 AND $5 = 'I') OR (LP.KALKIS_TARIHI = $2 AND $5 = 'K'))
AND (((LP.LOKAL_KOD = $3 AND $4 = 'K')) OR ((I.ypt_lcl_kod = $3 AND $4 = 'I')))
GROUP BY S.KALKIS_YERI,S.VARIS_YERI,S.SAAT;
$BODY$
LANGUAGE 'sql' VOLATILE;

Adnan DURSUN
ASRIN Bilişim Ltd.Şti
Turkey



Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Markus Schaber 2006-02-12 21:04:18 Re: 10+hrs vs 15min because of just one index
Previous Message Aaron Turner 2006-02-12 19:33:57 Re: 10+hrs vs 15min because of just one index