Subject | Slow blob retrieval over network |
---|---|
Author | Don Schoeman |
Post date | 2010-03-05T13:46:55Z |
Hi Everyone,
I have a friend who is trying to load some binary data from a blob field
in a Firebird 2.0 DB. Here is the line of code that causes a problem:
(RB_Query.FieldByName('DATA_FIELD') as
TIB_ColumnBinary).AssignTo(RB_Stream);
He says that when accessing a local DB he gets around 2000 rows per
second but when pulling this over a 100MB LAN from a different server he
only gets around 1.5 rows per second, and the problem is at the above
mentioned line.
The blob consists of about 450 bytes and is created as a SUBTYPE 0 blob.
He is using Delphi 7 and an old version of IBO (version 4.3.Aa).
Any ideas would be greatly appreciated as I ran out of ideas on how to
help him, i.e., disabling the cursor through a TIB_SessionProps, not to
use TIB_Query.RecordCount together with a FOR loop, not using
Application.ProcessMessages within the loop, etc.
Kind Regards,
Don Schoeman
I have a friend who is trying to load some binary data from a blob field
in a Firebird 2.0 DB. Here is the line of code that causes a problem:
(RB_Query.FieldByName('DATA_FIELD') as
TIB_ColumnBinary).AssignTo(RB_Stream);
He says that when accessing a local DB he gets around 2000 rows per
second but when pulling this over a 100MB LAN from a different server he
only gets around 1.5 rows per second, and the problem is at the above
mentioned line.
The blob consists of about 450 bytes and is created as a SUBTYPE 0 blob.
He is using Delphi 7 and an old version of IBO (version 4.3.Aa).
Any ideas would be greatly appreciated as I ran out of ideas on how to
help him, i.e., disabling the cursor through a TIB_SessionProps, not to
use TIB_Query.RecordCount together with a FOR loop, not using
Application.ProcessMessages within the loop, etc.
Kind Regards,
Don Schoeman