Additional
Overview
Features >>
History
Download
Forum
Tickets
Polls
Which driver do you use or will use most of time ?
 
High performance
 PDFPrintE-mail

Applications of all types will benefit from multiple AnyDAC high performance features, including Rowset Fetching, Array DML Command Execution, Command Batches, etc. Also, AnyDAC code is deeply optimized. Our software engineers spend considerable time making AnyDAC one of the fastest data access engines on the market.

 

Array DML Command Execution provides the possibility to insert, update, delete many records or call many times stored procedure by single Execute call. This minimizes network traffic and server workload, and is primarily useful in batch applications. For example, lets consider example, where we will insert 1000 of records into DB. Here is classic approach:

 

var
  i: Integer;
begin
  ADQuery1.SQL.Text := 'insert into MyTab values (:p1, :p2)';
  for i := 1 to 1000 do begin
    ADQuery1.Params[0].AsInteger := i;
    ADQuery1.Params[1].AsString := 'Str' + IntToStr(i);
    ADQuery1.ExecSQL;
  end;
end;
 

 

And that is the Array DML usage:

 

var
  i: Integer;
begin
  ADQuery1.SQL.Text := 'insert into MyTab values (:p1, :p2)';
  ADQuery1.Params.ArraySize := 1000;
  for i := 1 to 1000 do begin
    ADQuery1.Params[0].AsIntegers[i - 1] := i;
    ADQuery1.Params[1].AsStrings[i - 1] := 'Str' + IntToStr(i);
  end;
  ADQuery1.Execute(1000, 0);
end;

 

Depending on the DBMS, that will give few tens performance gain ! Although the coding is almost similar to the classic approach.

 

Rowset Fetching allows you to specify the number of records that will be fetched from the server in one network roundtrip. You can optimize this separately for each select statement that you execute, thereby minimizing the number of network roundtrips. For example, Zeos DBO does not support Rowset Fetching. Because that AnyDAC is few times faster than Zeos DBO on fetching.

 

AnyDAC code passed very deep optimization under AQ Time profiler. To prove the fact, that AnyDAC is one of the fastest data access engine on the market, we have created ADSpeed application - AnyDAC benchmark suite (see AnyDAC\Tool\Speed). For the tests one table is filled with 200 records, each has BLOB field of ~150Kb length. And another table - with 200,000 records, each has string, number and datetime fields.

 

Generate Data

 

There you see ADSpeed screen listing registered tests.

 

AnyDAC Benchmark Suite [Oracle mode]

 

There you see ADSpeed screen listing registered datasets of different vendors. As you can see, we have compared almost all good known Oracle data access components, presented on the market.

 

AnyDAC Benchmark Suite 

 

And there are test results (click the picture to enlarge it):

 

Benchmark results