This is a discussion on function performance vs in-line sql within the Pgsql Performance forums, part of the PostgreSQL category; --> I am having a performance problem with a query implemented within a server side function. If I use an ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| 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 ---------------------------(end of broadcast)--------------------------- TIP 7: You can help support the PostgreSQL project by donating at http://www.postgresql.org/about/donate |
| |||
| 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 ---------------------------(end of broadcast)--------------------------- TIP 7: You can help support the PostgreSQL project by donating at http://www.postgresql.org/about/donate |
| |||
| 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 ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster |
| ||||
| 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 ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@postgresql.org so that your message can get through to the mailing list cleanly |