We have been struggling a lot about TDS & ODBC performance over high-latency
We're using MS SQL 2000 and unixODBC on Gentoo Linux to connect to it.
Our problem is that we have a single database that is being accessed by
multiple application servers all over the world. Sometimes network latency
between an appserver and the database could reach one second!!!
The basic problem we're having is that, say, if I call a function on an
appserver that has high-latency to the database, but low-latency to the
client, it's *slower*, than if I would be calling the remote app server,
that has low latency to the database, but high latency to the client.
Basically, to illustrate, this:
(cli) -> (app) -> < latency > -> (database)
is slower than this:
(cli) -> <latency> -> (app) -> (database),
which doesn't make any sense to me, because the size of data transferred
between the app and DB should be no higher than the size of data transferred
from an appserver to a client (we use XMLRPC to do function calls on the
We don't use bind, we just call sored procedures that return large record
sets (possibly multiple ones).
The only reason for this behavior I could see is that if TDS does
roundtrips to fetch the data... that's my guess... Im going to sit down with
Wireshark to see what's going on exactly, but meanwhile....
Does anyone have any experience with that, or have any good pointers to
documentation / info on that? I wasn't able to find anything decent on the
Thanx in advance!