Subject Interbase,Advantage,Paradox
Author Geno
Hello:

I have been reading the posts about the speed advantages of Interbase
over the BDE. It seems to be agreed that Interbase is much faster.
This leads me to believe I must be doing something wrong. I am a
novice to both Interbase and IBO. I have several applications that
have been running for years which are written in D5 with
BDE/Paradox. They are all applicaations that run on local networks
with less that 10 users. They all run fine except for the nasty
habit of Paradox to get corrupted indexes. Because of this, I
thought switching to another database might be a good idea. My first
switch was to Advantage. It worked fine and was relatively fast but
the Advantage local server does not support transactions. I was
going to purchase the Advantage remote server when I heared about
Interbase. Since it was free, it seemed foolish to spend money on
Advantage.
I have been working on converting the application and one of the
first things I noticed was how much slower everthing ran. I created
a few test progams that simply loop and add 1000 records to each
different type of database. The table format is simple:
TheKey : Integer;
TheField : Character[20];

The loop is for the BDE\Paradox version is:

For Loop := 1 To 1000 Do
Begin
Table1.Insert;
Table1.FieldByName('TheKey').AsInteger := Loop;
Table1.FieldByname('TheField').AsString := 'ABC';
Table1.Post;
End;

The loop for the Advantage and Interbase versions use querys instead
of tables but are otherwise similar.

In the BDE/Paradox version, the records are added in roughly 2
seconds. In the Advantage local server version, around 5 seconds.
In the Interbase version, around 15 seconds. In the Interbase
vsrsion this seems true if I use a DataSource/IBOQuery or IBOTable or
a IB_DataSource/IB_Query.

I realize it is probable that I should be optimizing the application
for use with Interbase. However, my plan was to first convert to
Interbase using DataSource/IBOQuerys then eventually to
TIB_DataSource/IB_Querys.

Can someone tell be what I am doing wrong?

Thanks.