[AccessD] Connections and Performance

Drew Wutka DWUTKA at marlow.com
Fri Feb 2 11:24:17 CST 2007


Never bothered to test it, to have empirical data.  It is just obvious.

For example, our new website (which isn't up yet), has a navigation process
that puts a nav bar at the top of every page.  On our current site, that bar
is built strictly from a hack into FrontPages navigation structure files.
(We use Frontpage to edit the site...well, some people do, I do most stuff
in just plain ol HTML.)  It's essentially a csv file.  The new site has a
mix, it gets most stuff from the FrontPage source, but then it also adds in
all the products.  There are three product pages, a page that shows all the
product types, a page that shows all the products of that type, and a page
that shows info on just a single product.  So, to FrontPage, the Navigation
is three pages, but to the user, there are lots of pages based on the
content that is stored within the database.  So the new site now builds the
navigation bars from a mix of the FP navigation, and the product database
(which handles everything from the products on the web, the glossary,
shopping cart, etc.).  It is doing this for every page you load, and it
loads as fast as your browser can handle it.  The product database is local
to the webserver (though not visible on the web itself), so everything that
occurs to the db is being done locally by the webserver itself.

If you had a SQL Server running on Machine X, and then had an identical
machine 'Y' (same processor, hard drives, memory, etc).  Which would be
faster?  Running a query on Machine Y, that is getting data from a SQL
Server on Machine X, or running a query (against identical data tables) on
Machine Y that is getting data from an Access MDB on Machine Y?  

There is nothing special about a server side DB that makes it more powerful
then Jet at doing the same thing.  The only true difference is that with a
server side system you have a dedicated system retrieving data.  But the way
that machine is retrieving data is essentially the same way Jet does.  It
has to read it's indexes, find the data, put it together, and send it out.
Jet does the same thing (though maybe not exactly the same way).  Over a
network, Jet is pulling chunks of a file across the network, which does take
longer then letting a server side system just send the resulting data back.


Since most mid to large apps in Access are used in a network environment,
we, as Access developers, get hammered by this shortcoming of a end user db
system.  Putting the .mdb on a webserver, with a web interface, however, is
functionally identical to putting the data into a server side db, with the
exception of roleback/transaction capabilities.

Drew

-----Original Message-----
From: Charlotte Foust [mailto:cfoust at infostatsystems.com] 
Sent: Friday, February 02, 2007 10:27 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Connections and Performance

Interesting, Drew.  Have you written an article on that?  It sounds like
useful knowledge.

Charlotte Foust 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka
Sent: Friday, February 02, 2007 7:40 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Connections and Performance

As soon as I see an article saying Access is bad behind a webserver, I
just roll my eyes.  In essence, an .mdb placed physically on a webserver
is going to crush a SQL server running on another machine, because the
data is being read locally, in essentially the same way a SQL server is
going to read it's own local data, so you completely drop the time it
takes to send and receive the data across a NIC. (On top of no time loss
for transaction logs, etc.)

Drew

-----Original Message-----
From: JWColby [mailto:jwcolby at colbyconsulting.com]
Sent: Friday, February 02, 2007 9:29 AM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Connections and Performance

>This means that although Access remains suitable for small Web
applications, those that experience growth where they are experiencing
more than 25 concurrent connections should consider upgrading to a more
robust database."

And what lab does he use for his perspective?  I tried to go read the
article but just got the main page and no further.  It would be useful
to see real numbers with understandable (to use programmers) test
methods.  I have never seen any such thing, nor do I have the time right
now to build such a test system.  I might have to though since my
applications are extremely complex and this might be something to watch.

John W. Colby
Colby Consulting
www.ColbyConsulting.com

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart
McLachlan
Sent: Friday, February 02, 2007 10:17 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Connections and Performance

On 2 Feb 2007 at 10:07, Michael R Mattys wrote:

> Heh :) It took me a few minutes, but I found this 'explanation'
> http://www.crystaltech.com/Newsletters/news2006-08tech.aspx
...
> However, Access is not optimized for use with a large number of 
> concurrent connections and does not scale for large databases. As more

> users connect to an Access database, the performance starts to degrade

> rapidly. Even moderately-trafficked websites can easily have 5 or more

> users at one time which can cause Access to lock the number of
connections.

Alternatively:

http://www.2020datashed.com/help/Topics/DataProviders.html

The database cannot handle more than 255 concurrent connections.
    This topic is very complex and many programmers will argue that this
number is misleading. Under the right conditions, if lock-type is
managed carefully and each of the concurrent users are connected to
different resources/tables in the database, and the users' connectivity
is properly managed via OLE, then 255 distinct users can be connected
simultaneously to the MS Access database. (As discussed in MS Knowledge
Base article: 
176670.)
    However the number of available concurrent connections drops
significantly when multiple tables are in use by a single connection and
if the data is not sufficiently locked while communicating with the
data.
    This number of course does not represent "people"...it represents
"users" which is often a different concept altogether. In a web-based
application each connection to the database can be opened, queried, and
closed within a few milliseconds, the number of "people" which can
browse the web site simultaneously is not limited to 255.
    In conclusion: this particular limitation is a concern but shouldn't
worry you unless your web site consistently receives a significant
amount of traffic. Perhaps more than a few thousand visitors per day.
    Sean Nicholson of www.informit.com (Article) has this to say:

        "Microsoft lists 255 as the maximum number of concurrent users
to an Access database. This means that only 255 users can actively
interact with the database at the same time. This might be theoretically
true in Microsoft's labs under the ideal circumstances, but the reality
of working with an Access database is that performance falls off sharply
when more than
25 or 30 concurrent requests are made. This means that although Access
remains suitable for small Web applications, those that experience
growth where they are experiencing more than 25 concurrent connections
should consider upgrading to a more robust database."


--
Stuart


--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



More information about the AccessD mailing list