Board index » delphi » Performance of dBase tables in BDE vs. ADO

Performance of dBase tables in BDE vs. ADO

Am I doing something wrong or is it true that ADO is about 30 times
slower than BDE
when adding records to a dBase file (IV or 5.0)?

I made a test app with a TTable and a TADOTable, both with a char (10)
and an integer column.

Adding 1000 records to TTable with AppendRecord took less than a second.
Adding 1000 records to TADOTable with AppendRecord took about 35
seconds.
Adding 1000 records to TADOTable with an SQL insert statemant took about
40 seconds.

Hans

 

Re:Performance of dBase tables in BDE vs. ADO


Quote
>Am I doing something wrong or is it true that ADO is about 30 times
>slower than BDE
>when adding records to a dBase file (IV or 5.0)?

Using ADO to access dbase tables if not wrong is at least foolish.
Ado is a good choice when you have a good Ole DB drive for your datbase.  This
is not the case with dbase
--
Brian Bushay (TeamB)
Bbus...@NMPLS.com

Re:Performance of dBase tables in BDE vs. ADO


Hi Hans,
I did some tests too, but when ADO is configured correct, it has the same
performance than BDE.
See this demo where I tried to compare Paradox BDE to Access voa ADO:
www.bkedv.de/download/ADODBTest.zip
Here is important to use a Server side cursor to increase performance.

regards, Bernd.

"Hans Verlouw" <Hans.Verl...@Geodan.nl> schrieb im Newsbeitrag
news:3bf29dbe_1@dnews...

Quote
> Am I doing something wrong or is it true that ADO is about 30 times
> slower than BDE
> when adding records to a dBase file (IV or 5.0)?

> I made a test app with a TTable and a TADOTable, both with a char (10)
> and an integer column.

> Adding 1000 records to TTable with AppendRecord took less than a second.
> Adding 1000 records to TADOTable with AppendRecord took about 35
> seconds.
> Adding 1000 records to TADOTable with an SQL insert statemant took about
> 40 seconds.

> Hans

Re:Performance of dBase tables in BDE vs. ADO


"Brian Bushay TeamB" <BBus...@Nmpls.com> wrote in message
news:gvf6vtccvc4qc5i65v9drrqochaabt8mu0@4ax.com...

Quote

> >Am I doing something wrong or is it true that ADO is about 30 times
> >slower than BDE
> >when adding records to a dBase file (IV or 5.0)?

> Using ADO to access dbase tables if not wrong is at least foolish.
> Ado is a good choice when you have a good Ole DB drive for your datbase.
This
> is not the case with dbase

And especially the problem is in ADO - ODBC connection - even you use ADO to
access dBase tables if you have installed BDE you will get very much speed,
because BDE replace ODBC when you made access to dBase tables.And especially
the problem is in ODBC - even you use ADO to access dBase tables if you have
installed BDE you will get very much speed, because BDE replace ODBC when
you made access to dBase tables.

Miro.

Re:Performance of dBase tables in BDE vs. ADO


Hi,

Quote
"Bernd Klaiber" <B.Klai...@dug-software.de> wrote in message

news:3bf372b5$1_2@dnews...

Quote
> Hi Hans,
> I did some tests too, but when ADO is configured correct, it has the same
> performance than BDE.
> See this demo where I tried to compare Paradox BDE to Access voa ADO:
> www.bkedv.de/download/ADODBTest.zip
> Here is important to use a Server side cursor to increase performance.

And with server side cursors about 50% of things in ADO is inaccessible ;)

(Are you have installed BDE when you test ADO - ODBC - dBase/Paradox?)

Thanks,

Miro.

Re:Performance of dBase tables in BDE vs. ADO


Hi,

"Brian Bushay TeamB" <BBus...@Nmpls.com> wrote in message
news:gvf6vtccvc4qc5i65v9drrqochaabt8mu0@4ax.com...

Quote

> >Am I doing something wrong or is it true that ADO is about 30 times
> >slower than BDE
> >when adding records to a dBase file (IV or 5.0)?

> Using ADO to access dbase tables if not wrong is at least foolish.
> Ado is a good choice when you have a good Ole DB drive for your datbase.
This
> is not the case with dbase

And especially the problem is in ADO - ODBC connection - even you use ADO to
access dBase tables if you have installed BDE you will get very much speed,
because BDE replace ODBC when you made access to dBase tables.And especially
the problem is in ODBC - even you use ADO to access dBase tables if you have
installed BDE you will get very much speed, because BDE replace ODBC when
you made access to dBase tables.

Miro.

Re:Performance of dBase tables in BDE vs. ADO


It seems like you access an Access database, but I'm not sure, because
you didn't include the UDL in the ZIP.
Could you send me the UDL?
I use Access as well as some dBase files, and I don't have this problem
with the Access database, only with the dBase files.
And we absolutely don't want to use BDE anymore, because of conflicts
with other software that use BDE.

Tip for other readers: edit Unit1.dfm and set all Active and Connected
properies to false, otherwise Delphi crashes, because the
connectionstring refers to a non-existant directory.

Hans

Quote
"Bernd Klaiber" <B.Klai...@dug-software.de> wrote in message

news:3bf372b5$1_2@dnews...
Quote
> Hi Hans,
> I did some tests too, but when ADO is configured correct, it has the
same
> performance than BDE.
> See this demo where I tried to compare Paradox BDE to Access voa ADO:
> www.bkedv.de/download/ADODBTest.zip
> Here is important to use a Server side cursor to increase performance.

> regards, Bernd.

> "Hans Verlouw" <Hans.Verl...@Geodan.nl> schrieb im Newsbeitrag
> news:3bf29dbe_1@dnews...
> > Am I doing something wrong or is it true that ADO is about 30 times
> > slower than BDE
> > when adding records to a dBase file (IV or 5.0)?

> > I made a test app with a TTable and a TADOTable, both with a char
(10)
> > and an integer column.

> > Adding 1000 records to TTable with AppendRecord took less than a
second.
> > Adding 1000 records to TADOTable with AppendRecord took about 35
> > seconds.
> > Adding 1000 records to TADOTable with an SQL insert statemant took
about
> > 40 seconds.

> > Hans

Re:Performance of dBase tables in BDE vs. ADO


Thanks for all replies.
I found the TDBF component on http://www.tdbf.net/
This provides a good way for writing dBase files without BDE and without
ADO.
Works on Win9x as well as Win2000.

My test app stats:
Adding 100,000 records to TTable took 8 seconds.
Adding 100,000 records to TDBF took 6 seconds.

Hans

Re:Performance of dBase tables in BDE vs. ADO


OK, some things may not work using adUseServer, but I want to use 'Seek', to
access fast search via an index, this feature is only available with
adUseServer and TableDirect.
Yes, BDE is installed.

"Miro Penchev" <mirosl...@bsc.bg> schrieb im Newsbeitrag
news:3bf373fb$1_1@dnews...

Quote
> Hi,

> "Bernd Klaiber" <B.Klai...@dug-software.de> wrote in message
> news:3bf372b5$1_2@dnews...
> > Hi Hans,
> > I did some tests too, but when ADO is configured correct, it has the
same
> > performance than BDE.
> > See this demo where I tried to compare Paradox BDE to Access voa ADO:
> > www.bkedv.de/download/ADODBTest.zip
> > Here is important to use a Server side cursor to increase performance.

> And with server side cursors about 50% of things in ADO is inaccessible ;)

> (Are you have installed BDE when you test ADO - ODBC - dBase/Paradox?)

> Thanks,

> Miro.

Re:Performance of dBase tables in BDE vs. ADO


I used the standard UDL file which is created by installing delphi. It
points to the DBDemos.mdb, using the Jet 4 Provider.
try something like this:
'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User
ID=Admin;Data Source=C:\Program files\Common files\Borland
Shared\Data\DBDEMOS.mdb'
Sorry, next time I would solve the connection string problem in a demo in
another way.
Bernd.
"Hans Verlouw" <Hans.Verl...@Geodan.nl> schrieb im Newsbeitrag
news:3bf3881b$1_2@dnews...
Quote
> It seems like you access an Access database, but I'm not sure, because
> you didn't include the UDL in the ZIP.
> Could you send me the UDL?
> I use Access as well as some dBase files, and I don't have this problem
> with the Access database, only with the dBase files.
> And we absolutely don't want to use BDE anymore, because of conflicts
> with other software that use BDE.

> Tip for other readers: edit Unit1.dfm and set all Active and Connected
> properies to false, otherwise Delphi crashes, because the
> connectionstring refers to a non-existant directory.

> Hans

> "Bernd Klaiber" <B.Klai...@dug-software.de> wrote in message
> news:3bf372b5$1_2@dnews...
> > Hi Hans,
> > I did some tests too, but when ADO is configured correct, it has the
> same
> > performance than BDE.
> > See this demo where I tried to compare Paradox BDE to Access voa ADO:
> > www.bkedv.de/download/ADODBTest.zip
> > Here is important to use a Server side cursor to increase performance.

> > regards, Bernd.

> > "Hans Verlouw" <Hans.Verl...@Geodan.nl> schrieb im Newsbeitrag
> > news:3bf29dbe_1@dnews...
> > > Am I doing something wrong or is it true that ADO is about 30 times
> > > slower than BDE
> > > when adding records to a dBase file (IV or 5.0)?

> > > I made a test app with a TTable and a TADOTable, both with a char
> (10)
> > > and an integer column.

> > > Adding 1000 records to TTable with AppendRecord took less than a
> second.
> > > Adding 1000 records to TADOTable with AppendRecord took about 35
> > > seconds.
> > > Adding 1000 records to TADOTable with an SQL insert statemant took
> about
> > > 40 seconds.

> > > Hans

Re:Performance of dBase tables in BDE vs. ADO


Here are my results of the test with several methos to access an Access
Table via ADO
[please use a fixed font to see better formatting]
adUseClient:
              (in Delphi)                   (without running Delphi)
          BDE  ADOTable  ADO pure     BDE  ADOTable ADODataset ADO pure
INSERT    160   16213    15011       160   3425      3425     2614
UPDATE    110   16954    16874       110   4125      4125     3685
DELETE    100   15142    70  (1      100   3906      3906     50 (1
          (without running Delphi, adUseServer)
          ADOTable ADODataset ADO pur
INSERT    1024         971      150
UPDATE    1361        1322      251
DELETE    1282        1142      120 (1

in ms, P3/900, Delphi 6
(1: delete not for each row, but via SQL-Command
To get maximum speed (using Access via ADO), I recommended to use the pure
ADO-Objects or at least the objects which are also provided by the Delphi
Objects (eg TAdoDataset.Recordset) and a server cursor adUseServer.
happy coding, Bernd.

"Hans Verlouw" <Hans.Verl...@Geodan.nl> schrieb im Newsbeitrag
news:3bf29dbe_1@dnews...

Quote
> Am I doing something wrong or is it true that ADO is about 30 times
> slower than BDE
> when adding records to a dBase file (IV or 5.0)?

> I made a test app with a TTable and a TADOTable, both with a char (10)
> and an integer column.

> Adding 1000 records to TTable with AppendRecord took less than a second.
> Adding 1000 records to TADOTable with AppendRecord took about 35
> seconds.
> Adding 1000 records to TADOTable with an SQL insert statemant took about
> 40 seconds.

> Hans

Re:Performance of dBase tables in BDE vs. ADO


Bernd,

Thanks very much for your useful table.
As you might have read earlier I use TDBF now for my dBase files,
but for the other part of my app this is most interesting.

Hans

Other Threads