Subject Slow performance using isc_blob_info
Author Chau Chee Yang
Hi,

I am writing a Delphi DBX driver to access Firebird Database.I
encounter a performance issue while access Blob Field.

I have a table with 30K rows that has 2 blob fields. When I load this
table into a TClientDataSet, it tooks 30 seconds. However, if I use
the driver provided by Borland (Codegear), it tooks only 10 seconds.

After tracing my source code, I found the bottle neck occurs at the
following API that read the Blob Size:

isc_open_blob(...);
isc_blob_info(...);
isc_close_blob(...);

The above API will get call each time to read the Blob Size. The
debug trace from Borland's DBX driver also use these 3 APIs to get
Blob Size. Does anyone know what cause the slow performance on my driver?

Thank you.