Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

RB7.02 - ADO performance problem.

edited May 2003 in General
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

Comments

  • edited May 2003
    Andy,

    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

    --
    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited May 2003
    Thanks for your response. However, there are no sub-reports in this report.
    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





  • edited May 2003
    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.

    --
    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
This discussion has been closed.