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. 
There you see ADSpeed screen listing registered tests. ![AnyDAC Benchmark Suite [Oracle mode]](images/content/perf_bench1.gif)
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.
And there are test results (click the picture to enlarge it):
|