Many thanks for your prompt reply. Does this mean that if you are
accessing
a backend database as a mdb via linked tables in your front end, the work
is
still undertaken at the backend and the results sent to the front end (
indexing permitting),
No work occurs at all on the back end. It is still a plane Jane file. The
ONLY work that occurs on the BE part is a "file read".
Note that you can put Excel document on that same network folder, or a Word
document on that folder. In all 3 cases (word, access, excel), that software
NEVER has to be instilled on the network drive/folder. Those are just files.
So, the only real work that does (and can) occur on the remote side is plain
Jane windows file reading. I can't exactly call that "processing", or any
kind of work that is of much value. So, sure, some "work" occurs on the
target end, but that work is no different then what occurs with Excel, or
word. It is just a plain Jane disk read that occurs. Certainly no "sql"
query processing occurs. (JET does that on the pc side..and then figures out
what part of the file to read into memory -- and, if that file is on a
network share, then that does not change what happens except you got a
network between JET and the file).
All data manipulation has to occur on the target end when you use a JET file
share....
so if you have a properly indexed database, and are
accessing records using fields that are indexed, the network traffic
volume
would be similar to using a SQL server backend?
Well, yes, but there is a larger story. Sql server will scale to more users
because of the fact that sql server can do SOME processing on the server
side.
Take the following example:
udpate tblCustomers set PurchaseOrder = 'approved' where customerID = 123
With JET, the following happens:
The one record is retrieved via the index and read into memory
(this means, we open back end table, use index, retrieve the record ACROSS
THE NETWORK to the memory in the pc, modify it, and SEND IT BACK across the
network to the hard disk.
With sql server the following happens:
We transmit the sql command to the server
udpate tblCustomers set PurchaseOrder = 'approved' where customerID = 123
The server now opens the table (no network traffic...as it occurs local).
The server reads the one record into memory (lets hope we got a index here.
In fact, if we don't have a index, then a full table scan will occur JUST
like it would with jet.However, while that server hard disk is going bonkers
at full speed, there is NO network traffic occurring. This means you are do
more stupid things with sql sever, and not kill network traffic. You will
certainly make sql server sweat...but can work and cause NO network traffic
to occur).
Ok, we got the one record into memory (that memory is on the sql server
side). We update the record, and write it back to disk. Notice how the
record did not travel to the pc, but stayed on the server side. This is one
reason why sql server scales well.
Take the following:
udpate tblCustomers set PurchaseOrder = 'approved'
In the above, we have no index, and want to operate on all records. With
jet, a full table will be transmitted to the local pc, and after each record
is updated to approved, it now must be sent back. That is two trips
With sql server, the above command is sent to the server, and then NO
NETWORK TRAFFIC NEEDS to occur. So, sql server can do local processing,
where as with JET, all data processing MUST occur client side.
So, for a good amount of regular updating, you pull a record to the client
into a form...update it, and send it back. Both jet, and sql server will not
be much different in this kind of example (which is a major portion of how
applications run). However, since sql server *can* do processing local side,
then often network activity is avoided. And, when you start using stored
procedures (code) that runs on the server side, then again you gain, as this
code can do processing and not use network traffic.
Also, because sql server is the one that opens the file, and NEVER the
clients, then un-plugging the client side computer can't harm the data on
the server side (you can un-plug your computer while ordering a book on
www.amazon.com, and nothing happens to their computers because "their" sql
server is opening, and reading the files, not you the client. This is also
why you can't corrupt (damage) a sql server file on the client side, because
YOUR computer never opens the file directly. However, if you un-plug the sq
server machine, then watch out!!
So, sql server is kind the exact "reverse" of JET. You got a sql engine
running on the server side, and you tell it what to do "over there". You
still send data back and forth, but in many cases you don't have to send the
data to the client.
So, when someone says that all data processing occurs client side with JET
file shares, they are correct. It just that not all of the table needs to be
sent to the client when updating one record.....