Page 1 of 1

Firebird Superserver with Zeos extremly slow

Posted: 12.01.2016, 22:57
by haegar
Hello,

I have a performance-problem using ZEOS-Lib 7.1.4-stable and Firebird 2.5. If Firebird runs on a separate server (not localhost) a simple select * from test_table to be displayed in e Delphi DBGrid needs about 30 seconds for olny 1000 records.
Doing the same job with an other component (UIB) needs lees than one second. Doing it on localhost with Zeos even need less than one second.

After I have seen the problem in my main application I have tested this with a simple test-program in Delphi that contains only:
  • *a Datamodule with TZConnection and TZQuery
    * a form with a TDBGrid and a TDatasource
ZConnection uses this settings:
Hostname: ip-Address of the server
Databasename: testdb (alias)
protocol firebird-2.5
sqlHourglass false

All other components uses the standard-settings, only TZQuery.SQL ist set to "select * from test_table".

The problem only occures if firebird runs on a separate maschine, running on the same maschine as the client works without any problem.

If used with a separate server over LAN (same with WLAN), I can see in a network-monitor that after sending the select to the server there was a data-transfer with only 800kByte/s for a time of about 30 seconds. During this time server-CPU has a usage of about 1-3%. Copying some large files or many small files over the same network runs with a speed of more than 15MByte/s, so LAN-performance may be OK.

Is there anything I can have done wrong with Zeos? It seems quite simple and most other things are working very good with Zeos so I don't want to change to an other component.
Any tip to get this to a good performance?

Many thanks...

Is there any

Re: Firebird Superserver with Zeos extremly slow

Posted: 13.01.2016, 12:10
by EgonHugeist
First of All: Switch to 7.2! which improves the performance a loads!

On the other hand ... nope not a real idea. Just a loads of known FB protocol issues..

Just have a look @:

http://asfernandes.blogspot.ro/2009/07/ ... ebird.html
Do you use the FB2.5 client-lib? Be sure about

in addition:
http://www.janus-software.com/fbmanual/ ... n&topic=43
disable the nagle option..

Re: Firebird Superserver with Zeos extremly slow

Posted: 13.01.2016, 12:54
by miab3
@haegar,

Almost impossible:

Firebird 3.0 local ZEOS 7.3 svn 3730
select * from ELEMENTY ROWS ? (43 fields)
Limit 50000 1,12 sec
Limit 100000 1,92 sec
Limit 150000 2,88 sec
Limit 200000 3,82 sec
Limit 250000 4,78 sec

Firebird 2.5 remote ZEOS 7.3 svn 3730
select * from ELEMENTY ROWS ? (43 fields)
Limit 50000 1,04 sec
Limit 100000 1,90 sec
Limit 150000 2,80 sec
Limit 200000 3,77 sec
Limit 250000 4,90 sec

Client i7-3,5GHz; Server i7-3,5GHz; LAN 1Gb; Delphi 10 Seattle Win32
Client lib: WI-V3.0.0.32172 Win32
Super Server version = WI-V3.0.0.32172 Firebird 3.0 Release Candidate 1 Win64
Super Server version = WI-V2.5.6.26957 Firebird 2.5 Win64

Show the table structure?!

Michal

Re: Firebird Superserver with Zeos extremly slow

Posted: 17.01.2016, 13:03
by haegar
After updating the component from 7.1.4-stable to 7.2-Beta the performance is good.
I will try to chenge the code additionally in a way that the BLOB-column will be loaded by an aextra TZQuery so tha teh one that is for the list-view will only select the other fields without the BLOB (containing a JPG). Maybe this will add some more speed too.

What about "Beta"? I use the component in a prodution environment. Is 7.2 Beta stable enougth - I think I have seen first 7.2 Beta a few years ago, so what is the difference to a "stable"?

Regards,
haegar

Re: Firebird Superserver with Zeos extremly slow

Posted: 19.01.2016, 22:12
by marsupilami
Hello haegar,

Zeos 7.2 is still beta because we are currently fixing some issues that have been raise by problems with the firebird drivers and also with some things in the PostgreSQL driver. As far as I know, Zeos 7.2 will be the new stable afterwards.
With best regards,

Jan

Re: Firebird Superserver with Zeos extremly slow

Posted: 08.02.2016, 17:58
by EgonHugeist
@haegar,

some notes ... since 7.2 i made the Lob-loading just on demand with FB and Postgre-OID lobs. So if the lob column is selected .. loading just happens first on accessing the field..

Have fun sir