AnyDAC for Delphi is comparably complex software library with about 200K lines of code. And there are always exist some code places, which may be optimized. And, what is important, the author is aware of them :) So, from release to release I am raising the product speed ... BTW, speed or velocity ? Velocity is about vector values. Speed is an object property to move fast. At data access I can easealy imaging the vectors. Many vectors, constituting the logical data flows. So, velocity also looks like a correct term. So, we just raised the AnyDAC for Delphi Oracle driver speed for 30%. This fact is valid for the SELECT's: - queries returning <= 10 records;
- queries having efficient execution plans;
- slow networks.
And I was aware of this place may be already 10 years. Just as always - no time to check. And yesterday one of the AnyDAC customers has reported speed issue with Oracle 11.2. The analysis showed, that Oracle Server has a bug exactly in this very old non-touched area. So, after the rewriting of this place I got this performance raise. And here is the current AnyDAC for Delphi Oracle driver benchmark result: 
The DataSets Legend. For comparision I have used only Embarcadero BDE, dbGo (ADO) and dbExpress datasets, as the AnyDAC TADQuery with dbExpress bridge driver: 
The Tests Legend. The result set with BLOBs is 1k of records with ~150K BLOB's. The result set without BLOBs is 200k of records with "Order"-like layout: 
Few things I want to conclude: BDE to be outdated, is not the slowest. See "FetchAll (No BLOBs)" test. dbExpress, even to be very light-weighted and unidirectional, is not the fastest data access method to the record sets. dbGo (ADO) is very slow. Actually, not the ADO itself is slow, by the Delphi data access components around ADO are slow. Array DML is just amaizingly fast !
Also, internally we have benchmark results with AllroundAutomations DOA and DevArt ODAC data access libraries. And there AnyDAC for Delphi also looks amazingly. But feel free to compare these and other libraries on your own. As only your own application is a True Benchmark ! |