Subject Paradox conversion
Author Robert Martin
Hi

I am re building some extremely old software to use Firebird instead of
Paradox. The user is obsessed with performance and wants the new system
to be as good as the old system. The old system was a flat table that
copied data locally to the HDD at startup to give best performance so it
is tricky to match that sort of performance.

Anyway the issue I have is that the user wants the scrollbar to
accurately represent the position in the table. To do this AutoFetchAll
must be enabled (correct?). Enabling this means that sometimes 110,000
records need to be populated, which even with FB 2.5 on my local
machine, takes 2 and a bit seconds. I can massively improve performance
by disabling the auto fetch all, however when the user tries a
progressive search (using .locate()) the system has to fetch all the
records and it is slow for the first search.

I think I can convince the user to do away with the accurate scrollbar
if I can convince him of the benefits. I am using TIBOQuery.

My questions

1. Is there a way to run without AutoFetchAll where the data will
display quickly and then continue downloading the data without stopping
the app?

2. Setting RecordCountAccurate to False when AutoFetchAll is false
gives a a scrollbar that updates with use. Does it also improve
performance?

3. Can I increase the amount of records buffered when AutoFetchAll is
false. If so I could do a halfway house, where not all records are
buffered but more than default, so that when a progressive search starts
it is faster.

4. Any other performance suggestions. I know it is hard for a
relational db to compete with a flat file db with regards to strait grid
display?

p.s. The query is in a readOnlyTransaction and is set to readonly. The
SQL is dynamically created and set in code.

Cheers
Rob