Subject | Slow performance using isc_blob_info |
---|---|
Author | Chau Chee Yang |
Post date | 2007-05-22T10:13:06Z |
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.
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.