Subject R: [IBO] Question about performance IBO/FireBird
Author Enrico Raviglione
Hi Helen,

>>
>>I have used IBO Monitor to see what happen when my application start
>>and discover if there are some looong query but the problem are not
>>localized in a specif point. All the startup-time are used by IBO for

>>prepare, send the query, load fields definition and then fetch the
>>first record for my 130 query. Can i reduce this startup-time ?
>
>Certainly. Don't open queries at startup time. Open them when they are

>needed. No human being can look at the output of 130 queries in the
first
>Minutes of using an application.
>
Your reply are correct, but the application are converted from FoxPro
database (Advantage) and with this database there aren't problem when i
open a lot of query at start-up. For change my application as you have
suggest i must modify a lot of line of code and test all the module.
All my query use a MyTIBOQuery component derived from TIBOQuery, can i
modify it for do an "auto-open" when i need it. Can i hook some events
(like OnError) or some other and open my query trasparently to my
visual-component (like LookupComboBox) and to my coded instructions ?


>>2) The second problem seem to be a FireBird problem not an IBO problem

>>but i explain it. I found the problem on a "old" and slow Server. When

>>the database file size grow i see a big degradation of FireBird
>>performance. Attention not when the number of records grow but when
the
>>database file size grow!
>>......
>>I test and verify that the problem exists also on more fast Server but

>>are not so evident and the performance degradation are not so
>>exponential!
>
>It's a mix of problems, not IBO, not Firebird, but a need to do
>housekeeping. The result from running on a restored database proved
>this. Nearly 20% of your database is garbage that hasn't been
collected.
>1) Uncommitted transactions 2) Rollbacks on queries that were opened
but
>never used 3) Doing lots of drops without sweeping 4) Maybe some
indexes
>getting out of balance.
>
>Use gfix -s[weep] as often as you need to. If your db is slowing down
and
>growing, you need to sweep more often. You will soon find out how
often
>you need to do it. You can do it while the database is active but you
get
>more effective sweeping ( = "cleaner") if you do it when no users are
>logged in.
>
>You can also try periodically setting some of your big indexes inactive

>then active, when users are off-line. That rebuilds them.
>

Yes i have a lot of garbage in my db after my copies/drop operation but
why FireBird performance slow down so much ?
The same operation (made with a SP) on the same data take about:
8/9 seconds on 540MB DB
48/50 seconds on 670MB DB
3/4 second on 390MB DB
Do you think this is a normal behaviour or perhaps there are some kind
of problem ?

Best Regards,
Enrico Raviglione.