[AccessD] notes on mdb bloat

Jim Lawrence (AccessD) accessd at shaw.ca
Wed Mar 12 12:23:00 CST 2003


Hi Seth:

Just a personal observation.

When working with some of the older databases, like FoxBASE, the programmer
could decide to append a record or recall a record when adding it to the
data file. The append was always faster and recall was always slower because
it had to find a deleted record position in the data file and then insert
it. This process worked great if the data file was configured with
fixed-length records. In fact the recall method was not allowed on a data
file that had been created to allow variable length records.

My understanding of the MDB files are that:
1. They are designed as variable length record files.
2. All the objects are stuffed in the MDB blob, first come first serve.
3. When storing records/objects the system first attempts to 'recall' a
existing 'empty' same or larger space or gives up and appends the
record/object to the end of the file, what ever is faster.
4. There is no definitive file rebuilding routine even though the compact
process is supposed to do that. The compact process just removes the spaces
where a complete object has been deleted and is still completely intact.
There is still little spaces left where smaller records/objects were stuffed
into holes left when larger objected were modified and shuffled to other
positions or simply deleted. These small cushion spaces between objects are
left and not tracked. Eventually they build up in the MDB and we have a
'Bloated' file.

This is simply my theory but it makes sense when relating these issues to
Access's predecessors.

Jim

-----Original Message-----
From: accessd-admin at databaseadvisors.com
[mailto:accessd-admin at databaseadvisors.com]On Behalf Of Seth Galitzer
Sent: Wednesday, March 12, 2003 9:12 AM
To: accessd
Subject: [AccessD] notes on mdb bloat


Greetings,

Just wanted to share an observation with y'all.  We have one app which
needs both A2K and A97 versions.  It's not a big deal.   It just means
that every time we make any changes to the FE, wee need to back-port it
to A97 using the built-in tool.  Before I do this, I always run a
compact-and-repair first.  Having done this several times now, I have
noticed two things.

1) The conversion process seems to take an inordinately long time.  I
haven't timed it, but it seems to take at least 5 minutes, if not
longer.  This is not a large or complex app.  It's a bit sloppy (I
inherited it from a previous, inexperienced Access user), but I've fixed
a lot of that.  It's not a big deal, I just start it and then check on
it until it's done.  Not a big deal, but I'm wondering what the hangup
is.

2) The A2K FE mdb is currently right around 2MB.  The A97 FE mdb is just
under 600KB.  What the heck does A2K require in the file that adds that
much overhead?  Like I said, this is not a terribly complex or large
app.  This is also not a big deal, it just takes longer to download
updates to the users' computers.

I'm not really looking for answers here, just wanted to share what I've
observed.  If anyone can corroborate this experience and has some ideas,
I'd be interested from an academic standpoint to see what you think.

Share and enjoy!

Seth


--
Seth Galitzer			sgsax at ksu.edu
Computing Specialist		http://puma.agron.ksu.edu/~sgsax
Dept. of Plant Pathology
Kansas State University

_______________________________________________
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