Subject RE: [IBO] Improve IBO Performance
Author IBO Support List
For those who didn't want to do the math... The speed comparison is 187 ms for IBO vs. 125 ms for FireDAC.

There are several things IBO does for you that FireDAC doesn't. This makes it take a little bit longer to prepare your statement. For example, in some cases you may actually be having 1 or 2 additional internal cursors prepared. A bit better of a comparison would be to prepare a TIB_Cursor rather than the more complex buffered dataset. If you just want a simple straight forward scan through a query, use the TIB_Cursor.
 
Even though there is a little bit more time to get the TIBOQuery or TIBOTable statement prepared, depending on what you are doing, your performance can be many many times faster to perform the operations you wish to once the dataset is opened. Please tell me a little more about what you plan to do with the query and perhaps I can make a good recommendation for you.
 
If you like, you can send me a little sample app and I'll try and troubleshoot if there is anything going on that is eating your performance.
 
Thanks,
Jason Wharton
 


From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com]
Sent: Wednesday, June 24, 2015 11:45 AM
To: IBObjects@yahoogroups.com
Subject: [IBO] Improve IBO Performance

We recently migrated a large project:


From: Delphi 6 and IBO 4.9.8

To: Delphi XE6 and IBO 5.7.5_2275


We realize, however, that the connection to the database and the SQL queries were much slower than before.


The major bottlenecks apparently appear to be:

1. The connection to the database;

2. The first SQL query after connecting to the database;

3. When running the Prepare() when a TIBOQuery has many TFields;


To illustrate a case, I did a procedure that compares a connection and executing a SQL query between the IBO and the FireDAC:


https://gist.github.com/dipold/75fd613ca4a6bf4d98fa


The result was:

   Before IBO Open Query: 6552 ms

   After IBO Open Query : 6739 ms

   Before FireDAC Open Query: 31 ms

   After FireDAC Open Query : 156 ms


Is there something I'm doing wrong or I can do to improve the performance of the IBO?