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