Thread: best practice for use of functions..

best practice for use of functions..

From
"Chris Ochs"
Date:
My application does between 20-40 inserts per transaction.  I am putting all
of them into functions to limit the calls from the DBI to the database.

My preferred method is to have a function for each table that I do an insert
into, it's easier to manage that way and a lot easier to make changes if I
add/drop columns and tables.  Right now I have one function that is called
by my application that in turn calls all the other functions.

I am wondering is there is a significant overhead for calling say 10
functions from within a function compared to putting everything into one
single function?  Or are there other reasons why I would want to do it
differently?

Chris



Re: best practice for use of functions..

From
Doug McNaught
Date:
"Chris Ochs" <chris@paymentonline.com> writes:

> My preferred method is to have a function for each table that I do an insert
> into, it's easier to manage that way and a lot easier to make changes if I
> add/drop columns and tables.  Right now I have one function that is called
> by my application that in turn calls all the other functions.
>
> I am wondering is there is a significant overhead for calling say 10
> functions from within a function compared to putting everything into one
> single function?

Compared to the disk I/O overhead for a transaction, it'd be lost in
the noise--do whatever makes you happy.  :)

-Doug

Re: best practice for use of functions..

From
Allen Landsidel
Date:
Aren't there some caveats to this related to transactions?  I've been
working under the strong (I think I read.. heh) impression that
transactions cannot be nested, in 7.3 at least..

This would lead me to believe if the 'main' function called another that
failed and thus issued a rollback, would that not rollback the entire
meta-transaction, for lack of a better word?

-Allen

At 21:26 1/14/2004, Doug McNaught wrote:
>"Chris Ochs" <chris@paymentonline.com> writes:
>
> > My preferred method is to have a function for each table that I do an
> insert
> > into, it's easier to manage that way and a lot easier to make changes if I
> > add/drop columns and tables.  Right now I have one function that is called
> > by my application that in turn calls all the other functions.
> >
> > I am wondering is there is a significant overhead for calling say 10
> > functions from within a function compared to putting everything into one
> > single function?
>
>Compared to the disk I/O overhead for a transaction, it'd be lost in
>the noise--do whatever makes you happy.  :)
>
>-Doug
>
>---------------------------(end of broadcast)---------------------------
>TIP 4: Don't 'kill -9' the postmaster


Re: best practice for use of functions..

From
Richard Huxton
Date:
On Thursday 15 January 2004 03:50, Allen Landsidel wrote:
> Aren't there some caveats to this related to transactions?  I've been
> working under the strong (I think I read.. heh) impression that
> transactions cannot be nested, in 7.3 at least..
>
> This would lead me to believe if the 'main' function called another that
> failed and thus issued a rollback, would that not rollback the entire
> meta-transaction, for lack of a better word?

"multi-statement transaction" might be the better word. Now need a better word
for "a bunch of words strung together" ;-)

You're correct, but in this case Chris was doing a batch of inserts in the
same transaction anyway, so that's what he wants.
--
  Richard Huxton
  Archonet Ltd