Re: functions vs embedded SQL - Mailing list pgsql-general

From wsheldah@lexmark.com
Subject Re: functions vs embedded SQL
Date
Msg-id 200111062205.RAA19596@interlock2.lexmark.com
Whole thread Raw
In response to functions vs embedded SQL  ("Culley Harrelson" <Culley_Harrelson@pgn.com>)
Responses Re: functions vs embedded SQL
List pgsql-general

I'm pretty sure that Postgresql does NOT save the query plan with stored
procedures or views, so there's no performance gain from that.  There is also
never a performance loss from running a stored procedure with a query plan
that's no longer optimal, as sometimes happens with MS SQL Server.  (Or used to
as of version 7.0 anyway...)  Any performance gains from stored procedures in
Postgresql would come from making fewer trips between the server and client, and
from anything done in them that happens to run faster than it would on the
client.  There are also other more general reasons to use stored procs, but you
seem to be familiar with them. HTH,

Wes Sheldahl



"Culley Harrelson" <Culley_Harrelson%pgn.com@interlock.lexmark.com> on
11/06/2001 04:18:18 PM

To:   list-pgsql-general%dynworks.com@interlock.lexmark.com
cc:   pgsql-general%postgresql.org@interlock.lexmark.com (bcc: Wesley
      Sheldahl/Lex/Lexmark)
Subject:  Re: [GENERAL] functions vs embedded SQL



oh typo-- I mean where language = sql or language =  plpgsql

In MS SQL Server you get a performance kick when using stored  procs because the
optimizer doesn't have to figure out the best way to execute  the query.  The
query plan is saved and when the procedure is called it  executes the saved
plan.  Any such similar setup in Postgres?   Generally I find that embedded sql
makes for a more maintainable/portable  application but deep down inside I like
write stored procedures/functions so I'm  looking for an excuse :)

culley


>>> Jeff Davis <list-pgsql-general@dynworks.com>  11/06/01 12:51PM >>>
It seems you might be referring to PL/PgSQL  (not SQL/pgsql).
All the "PL"s , or Procedural Languages, are server-side  programming, JDBC
and php are client-side.

PLs are used when you need  the database to do some processing before it sends
the response to the  client. PLs are most helpful when used to reduce the
number of seperate  transactions a client needs to execute to perform one
function, or reduce  the amount of unnecessary data that is sent to the client
(data that the  client only needs as an intermediate step toward retrieving
the required  data, or inserting the required data).

Moreover, PLs can be aggregate  functions, or functions that operate on all of
the records in the result  set. This can be very helpful if, for example, you
are performing a  statistical calculation on the values in a column. You would
only have to  return the result to the client, the server can do the
calculating (which is  much more efficient, especially in terms of
communication between the client  and the sever).

You need client programming either way. Without a client,  the server is
useless :)

Regards,
    Jeff  Davis



On Tuesday 06 November 2001 11:56 am, you wrote:
>  Does anyone have an opinion on the performance benefits/drawbacks on  using
> SQL/pgsql functions rather than embedding SQL directly in your  code?  I use
> JDBC and php for different projects...
>
>  Culley





pgsql-general by date:

Previous
From: jd@commandprompt.com (Joshua Drake)
Date:
Subject: Re: Sourceforge moving from PostgreSQL to Oracle
Next
From: "Eric Ridge"
Date:
Subject: Re: pg_dump and DEFAULT column values