Subject Re: [ib-support] Performance
Author Lester Caine
> Our application has some processes that run for an extended period of
> time(up to 4 or 5 hours) as there is alot of complicated calculations.
> These processes are written with Stored Procedures (One main
> procedure that may call many other procedures.)
> We are experiencing problems where when these procedures are running,
> they take over the server. IBServer shows it is taking 99% of the CPU
> causing all other users to virtually stop when trying to access the
> server.
> We experience a similiar problem when users run complicated queries.
> 1) Is it adviseable to process these types of calculations in Stored
> Procedures or should they be written in C++?

Anything that reduces the amount of work that the server
does will help. You don't say what the processing is, but if
it can be run on a client machine and only hold up the
server when writing each result then that would help from a
load sharing point of view. Some things are great built into
the server, but from a load sharing point of view, getting
each client to do complex stuff and just post the answers
can give much better responce times.

> 2) Is there something we can do to ensure the server isn't taken over
> by Firebird?

Linux or Windows?

Linux is much better at 'load sharing' than Windows ( which
is NOT a good multi tasking OS ), so the problem here is set
the priorities so that Firebird is kicked out when something
more important comes up.

That does not help with the problem that a complex query can
lock out other database users, but if the volumn of work
means that Firebird is hogging most of the processing time,
then you need another server for the rest of the jobs or a
faster processor / more memory on the existing one.

Not a very satisfactory answer, but this is not simply a
Firebird problem.

Lester Caine
L.S.Caine Electronic Services