Lazarus, Firebird and Blobs over the network, slow
Posted: 05.11.2014, 20:09
Hello!
I have simple table as below:
The field IMAGE stores bmp image 800x800x16.
I have only 200 rows in this table.
I select the records using simple query:
Until I worked on localhost everythig was working fine and I didn't notice any problem with speed.
When I moved database to another machine in LAN the above query instead of 1s is executing over 10s.
It works so slow only from Lazarus/Zeos 7.1.3 (the same slow speed on windows and linux).
The same query executed from Falmerobin finishes in 1s from localhost and 1s from remote server as well.
When I remove the IMAGE field from query Lazarus works very fast again.
Does it mean that Zeos TZQuery reads all blob data from all rows and Flamerobin reads only pointers or info about existing or not existing data?
How to force TZQuery for loading full blob data for current row only?
I have simple table as below:
Code: Select all
CREATE TABLE IDX
(
ID CARDINAL NOT NULL,
ID_PARENT INTEGER NOT NULL,
CODE VARCHAR(10) NOT NULL,
DES1 VARCHAR(100) NOT NULL,
DES2 VARCHAR(100),
IMAGE BLOB SUB_TYPE 0,
CONSTRAINT PK_IDX_0 PRIMARY KEY (ID)
)
I have only 200 rows in this table.
I select the records using simple query:
Code: Select all
SELECT * from IDX
When I moved database to another machine in LAN the above query instead of 1s is executing over 10s.
It works so slow only from Lazarus/Zeos 7.1.3 (the same slow speed on windows and linux).
The same query executed from Falmerobin finishes in 1s from localhost and 1s from remote server as well.
When I remove the IMAGE field from query Lazarus works very fast again.
Does it mean that Zeos TZQuery reads all blob data from all rows and Flamerobin reads only pointers or info about existing or not existing data?
How to force TZQuery for loading full blob data for current row only?