Re: Network Slow Query

Author: Christof Wollenhaupt

Posted: 2014-12-18 at 23:35:57

>

> The tables are open with multilock and opportunistic table locking.

>

You mean optimistic table locking, right? Because opportunistic locking is

what likely makes the first query fast. But that is an SMB thing, not a VFP

feature.

Network access speed is largely driven by two factors: What data do I need

to read at all, and how fast can I get data across the network. For the

network speed the bandwidth is the least important attribute. More

important are latency and package throughput.

When only one client opens a remote file, the server and the client

negotiate who is allowed to maintain the read and write caches. In most

cases this will be the client. Effectively this means that the file only

needs to be transferred once and it can be done very efficiently in large

blocks, since all the repeated small block access happens on the client.

When a second client joins the party, the first client is being told to

send back the write cache and discard all client side caches. All further

caching is done on the server. This results in the second opening of a file

to be even slower than further requests, because the server has to wait for

the client to respond. It can also result in data loss, if the first client

fails to respond.

The second part is package throughput. VFP will basically read every record

individually. There are optimization when repeatedly continuous records are

requested, but in many cases it's down to one record per read request. The

number of packets varies wildly between the systems. On the same network

I've seen 250 packets/sec form a Windows 7 client onto a Windows 2008 R2

server and 1250 packets/sec from a Windows 8.1 client onto a Windows 2012

server. But that number is still very slow compared to the roughly 30,000

records/sec that a local drive provided.

Process Monitor from Sysinternals is a good way to see this type of

effects. When you filter on your application, you should see a huge list of

read requests each the size of a record. There's a time column on the left.

In my cases the times where 4 ms for Windows 7 and 0.8 ms for Windows 8.1

--

Christof

--- StripMime Report -- processed MIME parts ---

multipart/alternative

text/plain (text body -- kept)

text/html

---

_______________________________________________

Post Messages to: ProFox@leafe.com

Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/profox

OT-free version of this list: http://mail.leafe.com/mailman/listinfo/profoxtech

Searchable Archive: http://leafe.com/archives/search/profox

This message: http://leafe.com/archives/byMID/profox/CAL4QJhiiX-tswRSc5-MBNB6vUQ2UoJr2GZmSP9=gdG272aCshg@mail.gmail.com

** All postings, unless explicitly stated otherwise, are the opinions of the author, and do not constitute legal or medical advice. This statement is added to the messages for those lawyers who are too stupid to see the obvious.

©2014 Christof Wollenhaupt