Обсуждение: function performance vs in-line sql

Поиск
Список
Период
Сортировка

function performance vs in-line sql

От
"Schwarz, Karl"
Дата:
I am having a performance problem with a query implemented within a
server side function. If I use an SQL client(EMS Postgres) and manually
generate the sql query I get about 100 times performance improvement
over using the function.

I've also tried using a prepared statement from my application  and
observed a similar performance improvement over the the function.

The table I am quering against has several hundred thousand records. I
have indexes defined and I've run vacuum several times.

Is there something basic I am missing here with the use of a function. I
am no database expert, but my assumption was that a function would give
me better results than in-line sql.

I've seen a mailing list entry in another list that implied that the
query planner for a function behaves differently than in-line sql.


Thanks
Karl

Re: function performance vs in-line sql

От
Richard Huxton
Дата:
Schwarz, Karl wrote:
> Is there something basic I am missing here with the use of a function. I
> am no database expert, but my assumption was that a function would give
> me better results than in-line sql.

Not necessarily. Usually it means the planner has less information to go on.

We'll need more information though - table definitions, queries, how is
the function called etc.

--
   Richard Huxton
   Archonet Ltd

Re: function performance vs in-line sql

От
Heikki Linnakangas
Дата:
Schwarz, Karl wrote:
> I am having a performance problem with a query implemented within a
> server side function. If I use an SQL client(EMS Postgres) and manually
> generate the sql query I get about 100 times performance improvement
> over using the function.
>
> I've also tried using a prepared statement from my application  and
> observed a similar performance improvement over the the function.
>
> The table I am quering against has several hundred thousand records. I
> have indexes defined and I've run vacuum several times.
>
> Is there something basic I am missing here with the use of a function. I
> am no database expert, but my assumption was that a function would give
> me better results than in-line sql.
>
> I've seen a mailing list entry in another list that implied that the
> query planner for a function behaves differently than in-line sql.

For starters, can you show us the function, the manual sql query and the
schema, please?

--
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com

Re: function performance vs in-line sql

От
"Schwarz, Karl"
Дата:
Thanks. I was not looking for help with the query just wanted to know
that I didn't overlook some basic
configuration setting.

Karl

-----Original Message-----
From: Richard Huxton [mailto:dev@archonet.com]
Sent: Thursday, March 08, 2007 12:50 PM
To: Schwarz, Karl
Cc: pgsql-performance@postgresql.org
Subject: Re: [PERFORM] function performance vs in-line sql

Schwarz, Karl wrote:
> Is there something basic I am missing here with the use of a function.

> I am no database expert, but my assumption was that a function would
> give me better results than in-line sql.

Not necessarily. Usually it means the planner has less information to go
on.

We'll need more information though - table definitions, queries, how is
the function called etc.

--
   Richard Huxton
   Archonet Ltd