Thread: Function call costs for SQL and PLPgSQL

Function call costs for SQL and PLPgSQL

From
Vincenzo Romano
Date:
Hi all.
I need to create a huge SQL script to load 20+ M rows in a DB.
I've been force to wrap the inserts into PG functions.
I can write them in either SQl or PLPgSQL but don't know
whether this can make a big difference as far as time of
overall execution is concerned.

Somewhere else I've been told that SQL function bodies get "inlined"
during execution. Is thus correct to consider SQL functions "faster"
that the conterpart written in PLPgSQL?

Thanks.

--
Vincenzo Romano
--
Maybe Computer will never become as intelligent as Humans.
For sure they won't ever become so stupid. [VR-1988]

Re: Function call costs for SQL and PLPgSQL

From
Tom Lane
Date:
Vincenzo Romano <vincenzo.romano@gmail.com> writes:
> I need to create a huge SQL script to load 20+ M rows in a DB.
> I've been force to wrap the inserts into PG functions.
> I can write them in either SQl or PLPgSQL but don't know
> whether this can make a big difference as far as time of
> overall execution is concerned.

> Somewhere else I've been told that SQL function bodies get "inlined"
> during execution. Is thus correct to consider SQL functions "faster"
> that the conterpart written in PLPgSQL?

Inlining only applies to simple-SELECT SQL functions (ie, pure
functions).  For what you're trying to do, I think plpgsql will
be faster as well as more flexible.

            regards, tom lane