From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | CS DBA <cs_dba(at)consistentstate(dot)com> |
Cc: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: function slower than the same code in an sql file |
Date: | 2011-10-28 05:10:08 |
Message-ID: | 14399.1319778608@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
CS DBA <cs_dba(at)consistentstate(dot)com> writes:
> I have code that drops a table, re-create's it (based on a long set of
> joins) and then re-creates the indexes.
> It runs via psql in about 10 seconds. I took the code and simply
> wrapped it into a plpgsql function and the function version takes almost
> 60 seconds to run.
> I always thought that functions should run faster than psql... am I wrong?
Did you really just put the identical queries into a function, or did
you parameterize them with values passed to the function?
Parameterized queries are often slower due to the planner not knowing
the specific constant values that are used in the actual calls. There's
some work done for 9.2 to improve that, but in existing releases you
typically have to construct dynamic queries and EXECUTE them if you run
into this problem.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2011-10-28 05:10:18 | Re: function slower than the same code in an sql file |
Previous Message | CS DBA | 2011-10-28 04:54:47 | function slower than the same code in an sql file |