Subject Re: [IBO] Network traffic load monitoring
Author Jason Wharton
I suggest you make use of the SchemaCacheDir property of the
connection/database component.
This allows your schema information to be stored in local/shared files which
will greatly reduce the network chatter.

Jason Wharton

----- Original Message -----
From: "rodbracher" <rod@...>
To: <IBObjects@yahoogroups.com>
Sent: Friday, October 17, 2003 2:32 AM
Subject: [IBO] Network traffic load monitoring


Hi

I am finding a lot of my forms / datamods are creating large amounts
of network traffic on create. The legacy is a ttable / paradox
environment which is now in tibotable / tiboquery. Of course as time
permits everything is moving toward parameterized queries on limited
field use ( instead of select * ) .

But I have found some interesting things that I would appreciate
comment on.

A very simple project : a tibodatabase connecting to a GDB on the
network.

1 tiboquery. I monitored network traffic on 3 variations of the query.

1 ) Select * from mytable
2) Select * from mytable where mytable_id = `105364'
3) Select mytable_id from mytable where mytable_id = `105364'

Relation Info : 1 full record = 824 bytes, mytable_id = 12 bytes

I would monitor data traffic amounts on each test (using Traffic
Calculator)

DB Connection consistently reported 655 bytes sent, 982 bytes
received.

For each query I would open, close - get send receive traffic values,
repeat - get values, repeat etc. The second open, close and onwards
always produced a much lower but consistent value so I will just
display the results of the first two open / closes for each query.

1) Received 221 Kb Sent 26.6 Kb; Received 52.68 Kb Sent 5.93 Kb
2) Received 218 Kb Sent 26.5 Kb; Received 2.39 Kb Sent 1.51 Kb
3) Received 184 Kb Sent 24.5 Kb; Received 1.25 Kb Sent 1.11 Kb

The first time any of the queries are opened - using sql monitor I
get a long list of data looking like:

FETCH
STMT_HANDLE = 13517912
FIELDS = [ Version 1 SQLd 2 SQLn 2
RDB$INDEX_SEGMENTS.RDB$FIELD_NAME
= 'BATCH '
RDB$INDICES.RDB$RELATION_NAME = 'SCANBATCH ' ]
----*/

which is basically repeated for every column in mytable. ( This seems
odd for query 3 )

So for query 1 - the 52 kb on each open - can I translate this to
about 60 records being returned on each open ?

Query 2 - one record is being returned - but the byte info is 3 times
greater than the record length. Even more severe for Query 3 which is
just returing 1 column.

On first Open - why is Query 3 generating all that column info when I
am only interested in 1 column?

The reason the first open of a query concerns me is that I am trying
to reduce the amount of data generated on my form opens. Some get as
high as 3.5 mb and there is little I can do to reduce the number
queries that need to be opened. From the above It seems reducing
columns selected does little to help the initial open load.

Using IBO 4.2Gb FB 1.0.3 D5

Thanks

Rod