Wrox Home  
Search P2P Archive for: Go

  Return to Index  

pro_vb thread: Large Database issues?


Message #1 by "Yehuda Rosenblum" <Yehuda@I...> on Tue, 5 Mar 2002 10:39:26 -0500
Thank you all for your advice and suggestions.  In the past week,
although I was unable to write emails, I read everything.  I think the
solution appears to be an event issue in our code.  The issue was
aggravated by the large database as when the event is thrown a refresh
of a view form is triggered.  We are now fixing the event issue and
hopefully the memory issue will be resolved as well.

Thank You,
Yehuda

-----Original Message-----
From: Kim, Cardyin [mailto:CKim@s...]
Sent: Tuesday, March 05, 2002 12:20 PM
To: professional vb
Subject: [pro_vb] RE: Large Database issues?

I have had simliar problems with applications in the past.
As you begin to increase the amount of data and the
number of simultaneous users on your application,
you will get more memory errors in your application.

I was unable to find the exact cause of the problem
but here were some guesses that I was able to formulate
on the cause of the problem:

1) In the olden days, when you programatically accessed
an MS Access database, your program used "page locking".
This means that a whole page of data was locked by
simply sitting on one record in the database.  Using
ADO, you can control the locking functionality of
your program, but I'm still not convinced that it
works as well as M$ wants us to believe.

2) Because of the way Access works, each users' machine
does its own processing, updating, retrieving, locking
of the records in the database.  This means that it
is possible for one machine to "step on" the
process of another machine while it is trying to
read from/write to the database.  This part is
simply dependant upon the underlying file OS.

3) MSAccess also does all its data processing
on the client.  This means that if you execute
the following query:

SELECT * FROM MyData WHERE LastName like 'k*'

Your workstation will have to access every
single record in MyData to return the
recordset that you want (unless you index
the field, of course).

The larger the database, the more likely that
you data may change while your computer is
executing your select query.


Here is my suggestion:  If you haven't already
done so, convert app to ADO.  This may relieve
some of the strain the database if you code
your recordsets correctly.  If you have the
resources, obtain a copy of SQL Server and
use it.

If this is cost prohibitive, then perhaps
you can look into the MSDE (Microsoft
Data Engine) which is basically a stripped
down version of SQL engine.

Hope this helps,

Cardyin

-----------------------------------------
Cardyin Kim
Client/Server and Web Development Analyst
San Antonio Community Hospital
Upland, California
ckim@s...        (xxx) xxx-xxxx
-----------------------------------------


-----Original Message-----
From: Yehuda Rosenblum [mailto:Yehuda@I...]
Sent: Tuesday, March 05, 2002 7:39 AM
To: professional vb
Subject: [pro_vb] Large Database issues?


I have an application that uses an access database as a backend storage
program.  As the database has gotten larger we have begun receiving
Memory errors that cause the program to crash.  We do not seem to have a
memory leak.  The database is currently around 350 MBs.  Replacing the
database with an empty database made the memory errors go away.  Does
anyone have a clue as to how the larger database might cause the memory
errors?

$subst('Email.Unsub')...


  Return to Index