Subject | RE: [IBO] Improve IBO Performance |
---|---|
Author | IBO Support List |
Post date | 2015-06-24T22:14:37Z |
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.
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?