RB7.02 - ADO performance problem.
We have created various reports using D7, RB7.02, ADO, and Advantage
Databases.
When benchmarking reports, we noticed that the reports literally take 4-5
times longer to print when using ADO over native Advantage TDataSets. The
report, pipelines, and SQL is the same for both DataSets when performing
this comparison. To try and track down the performance difference we noticed
the following:
ADO
--------------------------------
Open - 4 sec.
Report.Print - 48 sec.
To move through the entire dataset takes only 6 seconds using the following
loop:
Open;
while not Eof do
Next;
Takes 5 seconds;
Native Advantage
--------------------------------
Open - 3 sec.
Report.Print - 12 sec.
To move through the entire dataset takes only 6 seconds using the following
loop:
Open;
while not Eof do
Next;
Takes 4 seconds;
To load and move through the entire datasets using ADO vs. Advantage is only
1 seconds difference, however the same report takes 4 times longer to print.
We need to use ADO since our app can use Oracle as a backend as well.
Any ideas would be appreciated.
Thanks,
Andy
Databases.
When benchmarking reports, we noticed that the reports literally take 4-5
times longer to print when using ADO over native Advantage TDataSets. The
report, pipelines, and SQL is the same for both DataSets when performing
this comparison. To try and track down the performance difference we noticed
the following:
ADO
--------------------------------
Open - 4 sec.
Report.Print - 48 sec.
To move through the entire dataset takes only 6 seconds using the following
loop:
Open;
while not Eof do
Next;
Takes 5 seconds;
Native Advantage
--------------------------------
Open - 3 sec.
Report.Print - 12 sec.
To move through the entire dataset takes only 6 seconds using the following
loop:
Open;
while not Eof do
Next;
Takes 4 seconds;
To load and move through the entire datasets using ADO vs. Advantage is only
1 seconds difference, however the same report takes 4 times longer to print.
We need to use ADO since our app can use Oracle as a backend as well.
Any ideas would be appreciated.
Thanks,
Andy
This discussion has been closed.
Comments
How are you linking the Advantage sets? If you have not already, try using
datapipeline linking for your Master Detail links. If you are using
standard Delphi linking with parameters, try switching to datapipeline
linking. Here is a BDE example.
http://www.digital-metaphors.com/tips/magicmasterdetail.zip
--
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
There is only one query and datapipeline. I originally thought it was an ADO
issue until I timed the time it takes to perform the following code:
//////////////////////////////////////////
Open;
while not Eof do
Next;
Report1.Print;
//////////////////////////////////////////
ADO performs the Open, While loop in 5 seconds, The Report1.Print takes 48
seconds.
Advantage performs the Open, While loop in 4 seconds, The Report1.Print
takes 12 seconds.
Tthanks,
Andy
Using Advantage with ADO and ReportBuilder has never fully been tested. If
you would like to see a chart of which databases have been tested with which
connectivity software, please see the RBuilder.hlp in the ReportBuilder
Reference | TroubleShooting | Database Specific End User Examples. I would
suggest using the Native connectivity software with an Advantage database.
It has been thoroughly tested and proven to work well.
--
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com