<hans.weisenberger (AT) mmm (DOT) com> wrote
Quote:
just to explain the printqry output:
printqry measures the server, this explains, that the figures for the
query
via client or directly to the server are near identically.
The only thing you can interpret for clientinstallation is the qry respond
and end cputime. This is the time, if you receive more than 1 row as
result,
between receiving the first and displaying the data. this indicates how
many
rows a select delivers. If you want the time for the whole query, you have
to
use something like dbmsinfo('_et_time'). |
Sadly, this explanation is not correct. printqry *always* measures the
response time seen by the client, not the server (by which I mean the Ingres
server *process*). The query send and response times in the trace are
entirely reliable.
Any difference between two dbmsinfo('_et_time') calls is meaningless in this
situation. The client can't send the second call until the delay has
finished, and if it was not an Ingres delay--maybe the client was doing
something computationally intensive, or had other problems of its
own--looking at dbmsinfo() would mislead you into thinking it was an Ingres
delay. In fact all it would show you is the time elapsed while executing
two statements, which is not the same as the time to execute one statement.
Client CPU time is no doubt related to the number of rows processed, but
there is no practical way to interpret the difference that I know of.
Looking at the buffered I/O count (_bio_cnt) shows the amount of
client/server communication directly.
Roy Hann (rhann at rationalcommerce dot com)
Rational Commerce Ltd.
www.rationalcommerce.com
"Ingres development, tuning, and training experts"