Wrox Home  
Search P2P Archive for: Go

  Return to Index  

access thread: Do Front-End/Back-End Databases REALLY speed things up?


Message #1 by "Susan Henesy" <susan.henesy@w...> on Tue, 28 Aug 2001 10:28:57
Dear experts,



This year I've been challenging myself to break out of old habits, and 

revisit some fundamental database concepts that have always been 

suggested, but that I just never bothered with because I was just too lazy 

or too comfortable with the way I already did things.



One of the fundamental ideas I'm playing with now is the Front-End/Back-

End database concept.  



I've got a great big Access '97 database, chock full of queries (2/3 of 

which should just be obliterated), forms, reports, and tons of code.  

Until today, it just sat on the local server, accessed by multiple users 

every day and processing with the agility of a slug.



A coworker of mine was taking an Access 2000 class last week, and while he 

was training offsite, we traded some email messages.  He said the 

instructor swore that creating a back-end/front-end database would 

actually speed things up. 



I balked at this, because it seems that every time I've used linked tables 

in other scenarios, the databases with the links seemed to run even *s-l-o-

w-e-r*.  But then.... I've been using linked tables from databases that 

were getting multiple hits....so that could have been part of my problem.  



I'm certainly willing to change my ways!  So today I took my Great Big 

Access '97 database and used the Database Splitter on it.  Now I've got 

some questions:



* My front-end and back-end are still both on the local server.  Will it 

REALLY reduce network traffic and speed things up if the same multiple 

users are all using the same front-end, sitting on the same server where 

the original entire database was?  It seems no different than the way it 

was before, except that all the tables are now linked, instead of static.



* Why did the Database Splitter tell me I could continue to make design 

changes to my front-end without interrupting data population?  It's got me 

very confused.  I was making changes to forms without interrupting data 

population before I split it.  Just went into Form Design, and made 

changes.  At least -- I THOUGHT I wasn't interrupting data population!



* If the front-end with linked tables IS faster, why is that?  Is it 

because... linked tables are only in use when they are opened up in a 

form, similar to the way a table or query is only open in code when a 

recordset is created, then freed up when the recordset is closed?  Whereas 

when it was just a database with static tables, once the database was open 

it was the same as putting all the tables in use?  (This is just a theory.)



* Now that I have a front-end and back-end....which one of these things is 

supposed to get compacted and repaired?



* That's another question...compacting and repairing.  Should one compact 

and repair, or repair and compact?  I've read that repairing actually 

makes a database BIGGER, which led me to think that I should repair first, 

then compact.  But I've learned never to believe anything I think.



* The next step I will take will be to convert this new '97 front-end to 

Access 2000, thereby having two front-ends, one for each type of Office 

user (Giantdb97.mdb and Giantdb2000.mdb).  Running the Access 2000 convert 

on Giantdb97.mdb won't "hurt" the tables now that they're linked (from 

Giantdb97_be.mdb) instead of static, will it?



I guess that's all for now!  I am looking forward to your very 

enlightening responses :).



Susan











Message #2 by "Susan Henesy" <susan.henesy@w...> on Tue, 28 Aug 2001 11:33:18
PS to my previous post:



After reading through some archive files, I have a feeling many of you 

will tell me to put these front-end versions on everyone's C drive.



I just have this to say about that:  I HATE that idea!!  It genuinely 

gives me the willies.  We've got well over 150 people I'd have to 

distribute the database to (not that many people actually use it, but you 

do have to give it to all appropriate parties). 



Even though the front-end for those users wouldn't change too much, even a 

couple of changes every couple of months would be a hassle.  You don't 

know my users.  They don't read emails about updates, or things that they 

have to download and replace.  I know because I have other little things I 

develop that get changed from time to time (an Outlook Email Form, for 

example), and even though I *email the form to the users* AND provide them 

with the intranet URL address where a fresh copy always resides for their 

use -- they delete my email without reading it, profess ignorance that we 

actually have an intranet, and invariably call me up and complain about 

some feature that isn't on their version.  To which I can only say, "Uh... 

did you get my email 3 weeks ago?" And they reply, "Oh.  I guess I deleted 

that." 



*PLEASE* don't tell me to distribute the front-end to these people!!



Browbeaten on a daily basis,

Susan



Message #3 by "Craig Flannigan" <ckf@k...> on Tue, 28 Aug 2001 11:40:10 +0100
Susan,



You need to distribute the front-end to your users!





Sorry, couldn't resist.



Seriously, could you not build this as an intranet application? We've solved

many distribuition problems this way, and it runs so much faster too.





Regards,



Craig.



-----Original Message-----

From: Susan Henesy [mailto:susan.henesy@w...]

Sent: Tuesday 28 August 2001 11:33

To: Access

Subject: [access] Re: Do Front-End/Back-End Databases REALLY speed

things up?





PS to my previous post:



After reading through some archive files, I have a feeling many of you

will tell me to put these front-end versions on everyone's C drive.



I just have this to say about that:  I HATE that idea!!  It genuinely

gives me the willies.  We've got well over 150 people I'd have to

distribute the database to (not that many people actually use it, but you

do have to give it to all appropriate parties).



Even though the front-end for those users wouldn't change too much, even a

couple of changes every couple of months would be a hassle.  You don't

know my users.  They don't read emails about updates, or things that they

have to download and replace.  I know because I have other little things I

develop that get changed from time to time (an Outlook Email Form, for

example), and even though I *email the form to the users* AND provide them

with the intranet URL address where a fresh copy always resides for their

use -- they delete my email without reading it, profess ignorance that we

actually have an intranet, and invariably call me up and complain about

some feature that isn't on their version.  To which I can only say, "Uh...

did you get my email 3 weeks ago?" And they reply, "Oh.  I guess I deleted

that."



*PLEASE* don't tell me to distribute the front-end to these people!!



Browbeaten on a daily basis,

Susan

Message #4 by "Susan Henesy" <susan.henesy@w...> on Tue, 28 Aug 2001 11:51:18

> Sorry, couldn't resist.

> 

> Seriously, could you not build this as an intranet application? We've 

solved

> many distribuition problems this way, and it runs so much faster too.

> 

> 

> Regards,

> 

> Craig.





Hi Craig,



I do have some databases up on ASP, but not this database.  It took this 

database 4 years to become the heavily form and report laden thing that it 

is.  Plus a couple of the forms use mail merge documents and calls to MS 

Word and stuff, and... that might be difficult to recreate in ASP, 

wouldn't it?    I don't know; this thing is so big it should be its own 

Republic; reubilding it from scratch doesn't seem to be worth the 

time/effort, especially what with trying to juggle all the things that 

have yet to be built.



Please don't tell me to rebuild this database!  ACK!















Message #5 by "Craig Flannigan" <ckf@k...> on Tue, 28 Aug 2001 12:09:27 +0100
It's fairly easy to re-create on an Intranet. Any queries already build can

be re-produced, but there are some drawbacks, one being the interaction with

other applications, and the Report functions aren't nearly as customisable

as Access97 allows you.



You'd need to seriously think about it before migrating if it's as big as

you say!!



We had a very large Access database which was split front end/backend.

Before it was just one file on a network server, but each time you open a

form, you're dragging a lot of data down the network compared to a split

database.



There isn't a easy solution to this one, apart from taking it to Thin Client

such as an intranet.











-----Original Message-----

From: Susan Henesy [mailto:susan.henesy@w...]

Sent: Tuesday 28 August 2001 11:51

To: Access

Subject: [access] Re: Do Front-End/Back-End Databases REALLY speed

things up?







> Sorry, couldn't resist.

>

> Seriously, could you not build this as an intranet application? We've

solved

> many distribuition problems this way, and it runs so much faster too.

>

>

> Regards,

>

> Craig.





Hi Craig,



I do have some databases up on ASP, but not this database.  It took this

database 4 years to become the heavily form and report laden thing that it

is.  Plus a couple of the forms use mail merge documents and calls to MS

Word and stuff, and... that might be difficult to recreate in ASP,

wouldn't it?    I don't know; this thing is so big it should be its own

Republic; reubilding it from scratch doesn't seem to be worth the

time/effort, especially what with trying to juggle all the things that

have yet to be built.



Please don't tell me to rebuild this database!  ACK!

Message #6 by brian.skelton@b... on Tue, 28 Aug 2001 12:14:10
Hi Susan



Got to agree with Craig on this - you won't see any performance 

improvement unless you distribute the front end to your users.



The decrease in network traffic when you split the database comes mainly 

from Access not having to request data from the file server whenever it 

needs to update a form \ report or display a dialog box. So, if you're 

going to keep these on the server you won't get any improvement. 



As Access drags whole tables across to your PC whenever you open a bound 

form or run a query, wherever the database is held, you won't see any 

improvement from a data movement point of view.



To control your users ;-) you'll need to implement some form of version 

checking into your databases. At it's simplest, put a version table in 

your data DB and one in your front end. If the latest entry in these two 

tables do not match then prevent the user (in a nice way) from opening 

your database. With a bit more work you have the new version automatically 

install itself when the user tries to open the database.



Before you do anything though, run a few tests to see if it's worth while. 

If your database is query intensive, always dragging massive tables across 

the network to work on, you probably won't see any improvement anyway and 

might as well leave it alone.



-Brian



PS You can run the Access 2000 upgrader on your new front end without 

worrying, it won't touch the tables now they are in a seperate database.



PPS Access 2000 DOES require that you have exclusive access to 

forms\reports\etc. before it will allow you to make changes to them. So 

now you've split your DB, you will be able to work with your own offline 

copy, and then slip the new version in when no-one is using it.



> PS to my previous post:

> 

> After reading through some archive files, I have a feeling many of you 

> will tell me to put these front-end versions on everyone's C drive.

> 

> I just have this to say about that:  I HATE that idea!!  It genuinely 

> gives me the willies.  We've got well over 150 people I'd have to 

> distribute the database to (not that many people actually use it, but 

you 

> do have to give it to all appropriate parties). 

> 

> Even though the front-end for those users wouldn't change too much, even 

a 

> couple of changes every couple of months would be a hassle.  You don't 

> know my users.  They don't read emails about updates, or things that 

they 

> have to download and replace.  I know because I have other little things 

I 

> develop that get changed from time to time (an Outlook Email Form, for 

> example), and even though I *email the form to the users* AND provide 

them 

> with the intranet URL address where a fresh copy always resides for 

their 

> use -- they delete my email without reading it, profess ignorance that 

we 

> actually have an intranet, and invariably call me up and complain about 

> some feature that isn't on their version.  To which I can only 

say, "Uh... 

> did you get my email 3 weeks ago?" And they reply, "Oh.  I guess I 

deleted 

> that." 

> 

> *PLEASE* don't tell me to distribute the front-end to these people!!

> 

> Browbeaten on a daily basis,

> Susan

> 

Message #7 by "Susan Henesy" <susan.henesy@w...> on Tue, 28 Aug 2001 12:21:26
> It's fairly easy to re-create on an Intranet. Any queries already build 

can

> be re-produced, but there are some drawbacks, one being the interaction 

with

> other applications, and the Report functions aren't nearly as 

customisable

> as Access97 allows you.



Oh now...you see right there, this database is not a good candidate for 

ASP.  It relies on interaction with other Office applications, and all the 

forms are heavily coded with VBA, as are all the reports.  And there's 

LOTS of those.  So, I see no good reason to redevelop this for the 

intranet... unless....well!  I suppose I could take my time and develop 

just a couple of the most important forms on ASP.  They do require, 

though, that an *.rtf or *.doc form be created and written to people's C 

drives; then that document feeds Word mail merge documents (this was much 

easier than using Access as the source data for Word -- takes FOREVER to 

hook those two up). 



The front-end could then be distributed with very little changes, because 

most of the other stuff is just read-only forms and graphically intense 

reports.



But that's the very very long term solution.  Can I just have the front-

end sit on the network drive, as it is doing now?



Susan



Message #8 by "Susan Henesy" <susan.henesy@w...> on Tue, 28 Aug 2001 12:27:29
Brian,



Excellent suggestions!  I very much like the whole version control idea; 

and I was hoping I could somehow program it to automatically install a 

newer version, nice to know it's possible.



I have put a "Susans97.mdb" on my own PC for the sake of testing, and will 

see if I reap significant benefits.  If so, I'll look into the 

distribution idea.  I'm resistant to it, but if the performance improves 

signifcantly and I can control the versions, I think it's very much worth 

it!



I'm very much indebted to both you and Craig for your feedback!  



Susan
Message #9 by "Peter Kaufman" <kaufman@l...> on Tue, 28 Aug 2001 18:26:50 +0700
Oh, boy.



If more than 5% of your users actually do anything  - data insertions, for

example, at one time, you are looking at trouble - you'll be pushing the

Access envelope. How big is this database anyway? If you already have that

many simultaneous users without problems, God bless you - you've been lucky.

I don't want to start a religious war on this - others may disagree, but my

$.02 is more than 7/8 users simultaneous users and/or larger than 50 MB

database is too much to trust Access with.



I think eventually you >will< be looking at splitting off the the front end

onto the workstations. Maybe you'll be dragged to it kicking and screaming,

but it'll probably come to that. Possibly a re-write to SQL Server back end

as well. However, I think there may well be some third party tools to

automate rolling out new front ends if you don't want to take on versioning

control yourself - have a look around. One place to look is FMS.



BTW, I really sympathize with the problem of users not reading instructions,

email, etc. The one that gets me the most is users who automatically close

any and all message boxes without even reading them, then come whining that

the database 'doesn't work'! Probably the message box was telling them they

were trying to enter text into date field or something like that. :-(.



Peter









> -----Original Message-----

> From: Susan Henesy [mailto:susan.henesy@w...]

> Sent: August 28, 2001 11:33 AM

> To: Access

> Subject: [access] Re: Do Front-End/Back-End Databases REALLY speed

> things up?

>

>

> PS to my previous post:

>

> After reading through some archive files, I have a feeling many of you

> will tell me to put these front-end versions on everyone's C drive.

>

> I just have this to say about that:  I HATE that idea!!  It genuinely

> gives me the willies.  We've got well over 150 people I'd have to

> distribute the database to (not that many people actually use it, but you

> do have to give it to all appropriate parties).

>





Message #10 by "Craig Flannigan" <ckf@k...> on Tue, 28 Aug 2001 12:28:36 +0100
You can have the front end sit on the network server, but as Brian was

explaining - no performance gains will be awarded. If you're okay with this, then that's fine.



Our Intranet offers the users of an application on there to view/run 

reports from the system and either view it on the screen, or download as 

an Excel File, or straight into word. Neither the Word or Excel file 

existed right up until the user needed it. It was created on the fly.



Users can select that they wish to mail merge. From this, then get asked 

for a letter template, or they cut+paste the letter content, select the 

list of users, and a word letter is built and downloaded to the PC. Very 

fast, and available to over 400 users without a problem.



But it took several months to convert it!





The Internet/Intranet technologies are removing boundaries every day, and 

we never thought it possible to offer more functionality before we 

completed it.











-----Original Message-----

From: Susan Henesy [mailto:susan.henesy@w...]

Sent: Tuesday 28 August 2001 12:21

To: Access

Subject: [access] Re: Do Front-End/Back-End Databases REALLY speed

things up?





> It's fairly easy to re-create on an Intranet. Any queries already build

can

> be re-produced, but there are some drawbacks, one being the interaction

with

> other applications, and the Report functions aren't nearly as

customisable

> as Access97 allows you.



Oh now...you see right there, this database is not a good candidate for

ASP.  It relies on interaction with other Office applications, and all the

forms are heavily coded with VBA, as are all the reports.  And there's

LOTS of those.  So, I see no good reason to redevelop this for the

intranet... unless....well!  I suppose I could take my time and develop

just a couple of the most important forms on ASP.  They do require,

though, that an *.rtf or *.doc form be created and written to people's C

drives; then that document feeds Word mail merge documents (this was much

easier than using Access as the source data for Word -- takes FOREVER to

hook those two up).



The front-end could then be distributed with very little changes, because

most of the other stuff is just read-only forms and graphically intense

reports.



But that's the very very long term solution.  Can I just have the front-

end sit on the network drive, as it is doing now?



Susan



Message #11 by "Susan Henesy" <susan.henesy@w...> on Tue, 28 Aug 2001 12:47:01
Hi, Craig!

 

> Our Intranet offers the users of an application on there to view/run 

> reports from the system and either view it on the screen, or download as 

> an Excel File, or straight into word. Neither the Word or Excel file 

> existed right up until the user needed it. It was created on the fly.



Good show -- I've done the Excel version of this, by denoting what type of 

document to spit the ASP page out as in the header.  I very much like 

the "on the fly" part of this method, which allows users to download the 

latest, greatest info.



AND I already have buttons where the underlying queries of a few of my 

reports can be downloaded to Excel -- the Financial Analyst likes this 

option, as he can crunch numbers any way he sees fit.



The reports that are most graphically intense only need to be accessed by 

two people at this point, who could certainly have their own Access front-

end (and need it, anyway, in order to process payments to our external 

contractors).



> Users can select that they wish to mail merge. From this, then get asked 

> for a letter template, or they cut+paste the letter content, select the 

> list of users, and a word letter is built and downloaded to the PC. Very 

> fast, and available to over 400 users without a problem.



Wow, Craig, you've really developed something incredible there!  400 

users?!  Is Access really your back-end?!  (Microsoft White Papers on 

Access instabilities have a way of making my heart go faint, but it's 

worked very well for the two ASP projects I've created so far.)  



I think that my Mail Merge might actually be a piece of cake -- they're 

just Word documents sitting on the network, which talk to each person's C 

drive.



> But it took several months to convert it!



You mean, it took several months to convert it up to a new version of 

Access??

 

> 

> The Internet/Intranet technologies are removing boundaries every day, 

>and 

> we never thought it possible to offer more functionality before we 

> completed it.



Yes, I have to say, I really love creating databases for ASP.  (I guess I 

should say, I love creating NEW databases for ASP ;).  So far it's 

actually proven to be EASIER to write validation via JavaScript and ASP 

than it was to write it in VBA in Access.  I need as many ways to control 

those pesky users as I can get.



Thanks again for all this great advice!

Susan



Message #12 by "Craig Flannigan" <ckf@k...> on Tue, 28 Aug 2001 12:52:44 +0100
Hi,



It took a few months to upgrade it from MS Access 97 front end, to a fully

fledged ASP application.



Although many people on this list would argue about the limits of Access,

we've not experienced anything. I know that all 400 users do not hammer the

system at the exact same time, but the speed is very quick and no one has

ever complained about that.



We're moving to SQL Server as the backend shortly as we are merging even

more apps from their desktop equvilents to the Intranet, but Access has been

more than faithful to us.



The backend database is around 100MB with over 68,000 records, so it's not

huge. This may be the reason for the speed.





Regards,

Craig.



-----Original Message-----

From: Susan Henesy [mailto:susan.henesy@w...]

Sent: Tuesday 28 August 2001 12:47

To: Access

Subject: [access] Re: Do Front-End/Back-End Databases REALLY speed

things up?





Hi, Craig!



> Our Intranet offers the users of an application on there to view/run

> reports from the system and either view it on the screen, or download as

> an Excel File, or straight into word. Neither the Word or Excel file

> existed right up until the user needed it. It was created on the fly.



Good show -- I've done the Excel version of this, by denoting what type of

document to spit the ASP page out as in the header.  I very much like

the "on the fly" part of this method, which allows users to download the

latest, greatest info.



AND I already have buttons where the underlying queries of a few of my

reports can be downloaded to Excel -- the Financial Analyst likes this

option, as he can crunch numbers any way he sees fit.



The reports that are most graphically intense only need to be accessed by

two people at this point, who could certainly have their own Access front-

end (and need it, anyway, in order to process payments to our external

contractors).



> Users can select that they wish to mail merge. From this, then get asked

> for a letter template, or they cut+paste the letter content, select the

> list of users, and a word letter is built and downloaded to the PC. Very

> fast, and available to over 400 users without a problem.



Wow, Craig, you've really developed something incredible there!  400

users?!  Is Access really your back-end?!  (Microsoft White Papers on

Access instabilities have a way of making my heart go faint, but it's

worked very well for the two ASP projects I've created so far.)



I think that my Mail Merge might actually be a piece of cake -- they're

just Word documents sitting on the network, which talk to each person's C

drive.



> But it took several months to convert it!



You mean, it took several months to convert it up to a new version of

Access??



>

> The Internet/Intranet technologies are removing boundaries every day,

>and

> we never thought it possible to offer more functionality before we

> completed it.



Yes, I have to say, I really love creating databases for ASP.  (I guess I

should say, I love creating NEW databases for ASP ;).  So far it's

actually proven to be EASIER to write validation via JavaScript and ASP

than it was to write it in VBA in Access.  I need as many ways to control

those pesky users as I can get.



Thanks again for all this great advice!

Susan

Message #13 by "Pardee, Roy E" <roy.e.pardee@l...> on Tue, 28 Aug 2001 08:59:38 -0700
In my informal experimentation (dealing w/a poorly performing app converted

from A97 to A2K), performance *decreases* when you split the database--even

if both front- and back-ends are left on the user's machine (not a practical

scenario if you've got more than one user).  Search the help file for

'performance' and you'll find an entry for improving performance of linked

tables.  Perf continues to decrease as you move the files out to network

servers.



IMHO the main reason you split .mdb files is convenience in rolling out

updates, not speed.  The actual number of bytes devoted to app elements (as

opposed to actual table data) in a unified .mdb file has been next to

negligible in the apps I've done.  But I greatly value being able to

entirely blow away a front-end file with a new version without having to

worry about losing my users 2 weeks worth of data entry and maintenance.



(To my way of thinking, it's actually sort of weird that Access combines app

stuff with data in the first place--what other database/app development

product that does that?)



You can mitigate the perf hit though, by putting the front-end on the user's

machine, and setting them up with a shortcut that opens the FE exclusively.

This way you're not pulling the UI element data over the network (tho again,

probably a teeny amount of data compared to the tables) and you're also not

incurring the hit of having Access try to do record locking on the front-end

file (which is unnecessary since it's only the one user in the db) as well

as the back-end file.



I definitely take the point about it being a pain in the tuchus to get users

to update.  I've seen several articles in magazines (most recently

Access*VB*SQL Advisor) that present schemes for checking versions &

automating updates.  For my stuff, putting a shortcut on the user's desktop

labeled "Refresh <<app name>>" and hitting them with e-mailed requests to

refresh when they get a chance (which are mostly replies to their change

requests/bug reports) has worked out well.  One of my collegues here

manually connects to his users' hard drives through the admin share &

overwrites the files for the each one, tho he said it was a pain to remember

who didn't get updated b/c they were in the db at the time he wanted to

update.



So... If what you're doing is working for you, I say stick with it.  You

might play around with using an exclusively-opened local front-end file on

your own machine, and see if you can tell a difference.  If you can't, no

doubt your users won't either.



As for your other Qs--compact & repair is one operation in A2K, so you don't

have a choice.  I don't think the order matters in A97.  It's most important

to compact the BE, though the FE will sometimes benefit from compacting

also.



Cheers,



-Roy





' Dear experts,

' 

' This year I've been challenging myself to break out of old 

' habits, and revisit some fundamental database concepts that have 

' always been suggested, but that I just never bothered with 

' because I was just too lazy or too comfortable with the way I 

' already did things.

' 

' One of the fundamental ideas I'm playing with now is the Front-

' End/Back- End database concept.  

' 

' I've got a great big Access '97 database, chock full of queries 

' (2/3 of which should just be obliterated), forms, reports, and 

' tons of code.  Until today, it just sat on the local server, 

' accessed by multiple users every day and processing with the 

' agility of a slug.

' 

' A coworker of mine was taking an Access 2000 class last week, and 

' while he was training offsite, we traded some email messages.  He 

' said the instructor swore that creating a back-end/front-end 

' database would actually speed things up. 

' 

' I balked at this, because it seems that every time I've used 

' linked tables in other scenarios, the databases with the links 

' seemed to run even *s-l-o- w-e-r*.  But then.... I've been using 

' linked tables from databases that were getting multiple 

' hits....so that could have been part of my problem.  

' 

' I'm certainly willing to change my ways!  So today I took my 

' Great Big Access '97 database and used the Database Splitter on 

' it.  Now I've got some questions:

' 

' * My front-end and back-end are still both on the local server. 

' Will it REALLY reduce network traffic and speed things up if the 

' same multiple users are all using the same front-end, sitting on 

' the same server where the original entire database was?  It seems 

' no different than the way it was before, except that all the 

' tables are now linked, instead of static.

' 

' * Why did the Database Splitter tell me I could continue to make 

' design changes to my front-end without interrupting data 

' population?  It's got me very confused.  I was making changes to 

' forms without interrupting data population before I split it. 

' Just went into Form Design, and made changes.  At least -- I 

' THOUGHT I wasn't interrupting data population!

' 

' * If the front-end with linked tables IS faster, why is that?  Is 

' it because... linked tables are only in use when they are opened 

' up in a form, similar to the way a table or query is only open in 

' code when a recordset is created, then freed up when the 

' recordset is closed?  Whereas when it was just a database with 

' static tables, once the database was open it was the same as 

' putting all the tables in use?  (This is just a theory.)

' 

' * Now that I have a front-end and back-end....which one of these 

' things is supposed to get compacted and repaired?

' 

' * That's another question...compacting and repairing.  Should one 

' compact and repair, or repair and compact?  I've read that 

' repairing actually makes a database BIGGER, which led me to think 

' that I should repair first, then compact.  But I've learned never 

' to believe anything I think.

' 

' * The next step I will take will be to convert this new '97 

' front-end to Access 2000, thereby having two front-ends, one for 

' each type of Office user (Giantdb97.mdb and Giantdb2000.mdb). 

' Running the Access 2000 convert on Giantdb97.mdb won't "hurt" the 

' tables now that they're linked (from Giantdb97_be.mdb) instead of 

' static, will it?

' 

' I guess that's all for now!  I am looking forward to your very 

' enlightening responses :).

' 

' Susan

' 

' 

' 

' 

' 

' 

' --- When you work at Microsoft, you don't have to wait for the 

' latest technologies to be released. You'll create them ? with 

' XML, SOAP, and C# -- and help decide what happens next. Find out 

' where your career can take you: take a look at our software 

' design engineer opportunities at http://www.microsoft.com/jobs. -

' --

' 



-----Original Message-----

From: Susan Henesy [mailto:susan.henesy@w...]

Sent: Tuesday, August 28, 2001 3:28 AM

To: Access

Subject: [access] Do Front-End/Back-End Databases REALLY speed things

up?



Message #14 by "Hamilton, Tom" <hamiltot@s...> on Tue, 28 Aug 2001 10:02:00 -0700
My experience differs from Roy in that splitting the database into

front-end/back-end has consistently improved performance.  Of course the

front-end is on the users' machine, the data is typically on a server.  I

have

one application with almost 900 users running against 14 distributed Access

97

back-end databases.  I works very well, however, these are not 900

concurrent

users.  

Upgrading the application is controlled by the application itself in that a

configuration table is on the server indicating the current version, the

value

is compared against the local (front-end) version id, if different, then it

fires off an upgrade routine.  The user is advised, but not allowed to

intervene.  Results are logged and processing resumes.  



HTH



Tom Hamilton

T_Systems, Inc

Database Programmer

(xxx) xxx-xxxx



>>> Pardee, Roy E 08/28/01 08:59AM >>>

In my informal experimentation (dealing w/a poorly performing app converted

from A97 to A2K), performance *decreases* when you split the database--even

if both front- and back-ends are left on the user's machine (not a practical

scenario if you've got more than one user).  Search the help file for

'performance' and you'll find an entry for improving performance of linked

tables.  Perf continues to decrease as you move the files out to network

servers.



IMHO the main reason you split .mdb files is convenience in rolling out

updates, not speed.  The actual number of bytes devoted to app elements (as

opposed to actual table data) in a unified .mdb file has been next to

negligible in the apps I've done.  But I greatly value being able to

entirely blow away a front-end file with a new version without having to

worry about losing my users 2 weeks worth of data entry and maintenance.



(To my way of thinking, it's actually sort of weird that Access combines app

stuff with data in the first place--what other database/app development

product that does that?)



You can mitigate the perf hit though, by putting the front-end on the user's

machine, and setting them up with a shortcut that opens the FE exclusively.

This way you're not pulling the UI element data over the network (tho again,

probably a teeny amount of data compared to the tables) and you're also not

incurring the hit of having Access try to do record locking on the front-end

file (which is unnecessary since it's only the one user in the db) as well

as the back-end file.



I definitely take the point about it being a pain in the tuchus to get users

to update.  I've seen several articles in magazines (most recently

Access*VB*SQL Advisor) that present schemes for checking versions &

automating updates.  For my stuff, putting a shortcut on the user's desktop

labeled "Refresh <<app name>>" and hitting them with e-mailed requests to

refresh when they get a chance (which are mostly replies to their change

requests/bug reports) has worked out well.  One of my collegues here

manually connects to his users' hard drives through the admin share &

overwrites the files for the each one, tho he said it was a pain to remember

who didn't get updated b/c they were in the db at the time he wanted to

update.



So... If what you're doing is working for you, I say stick with it.  You

might play around with using an exclusively-opened local front-end file on

your own machine, and see if you can tell a difference.  If you can't, no

doubt your users won't either.



As for your other Qs--compact & repair is one operation in A2K, so you don't

have a choice.  I don't think the order matters in A97.  It's most important

to compact the BE, though the FE will sometimes benefit from compacting

also.



Cheers,



-Roy





' Dear experts,

' 

' This year I've been challenging myself to break out of old 

' habits, and revisit some fundamental database concepts that have 

' always been suggested, but that I just never bothered with 

' because I was just too lazy or too comfortable with the way I 

' already did things.

' 

' One of the fundamental ideas I'm playing with now is the Front-

' End/Back- End database concept.  

' 

' I've got a great big Access '97 database, chock full of queries 

' (2/3 of which should just be obliterated), forms, reports, and 

' tons of code.  Until today, it just sat on the local server, 

' accessed by multiple users every day and processing with the 

' agility of a slug.

' 

' A coworker of mine was taking an Access 2000 class last week, and 

' while he was training offsite, we traded some email messages.  He 

' said the instructor swore that creating a back-end/front-end 

' database would actually speed things up. 

' 

' I balked at this, because it seems that every time I've used 

' linked tables in other scenarios, the databases with the links 

' seemed to run even *s-l-o- w-e-r*.  But then.... I've been using 

' linked tables from databases that were getting multiple 

' hits....so that could have been part of my problem.  

' 

' I'm certainly willing to change my ways!  So today I took my 

' Great Big Access '97 database and used the Database Splitter on 

' it.  Now I've got some questions:

' 

' * My front-end and back-end are still both on the local server. 

' Will it REALLY reduce network traffic and speed things up if the 

' same multiple users are all using the same front-end, sitting on 

' the same server where the original entire database was?  It seems 

' no different than the way it was before, except that all the 

' tables are now linked, instead of static.

' 

' * Why did the Database Splitter tell me I could continue to make 

' design changes to my front-end without interrupting data 

' population?  It's got me very confused.  I was making changes to 

' forms without interrupting data population before I split it. 

' Just went into Form Design, and made changes.  At least -- I 

' THOUGHT I wasn't interrupting data population!

' 

' * If the front-end with linked tables IS faster, why is that?  Is 

' it because... linked tables are only in use when they are opened 

' up in a form, similar to the way a table or query is only open in 

' code when a recordset is created, then freed up when the 

' recordset is closed?  Whereas when it was just a database with 

' static tables, once the database was open it was the same as 

' putting all the tables in use?  (This is just a theory.)

' 

' * Now that I have a front-end and back-end....which one of these 

' things is supposed to get compacted and repaired?

' 

' * That's another question...compacting and repairing.  Should one 

' compact and repair, or repair and compact?  I've read that 

' repairing actually makes a database BIGGER, which led me to think 

' that I should repair first, then compact.  But I've learned never 

' to believe anything I think.

' 

' * The next step I will take will be to convert this new '97 

' front-end to Access 2000, thereby having two front-ends, one for 

' each type of Office user (Giantdb97.mdb and Giantdb2000.mdb). 

' Running the Access 2000 convert on Giantdb97.mdb won't "hurt" the 

' tables now that they're linked (from Giantdb97_be.mdb) instead of 

' static, will it?

' 

' I guess that's all for now!  I am looking forward to your very 

' enlightening responses :).

' 

' Susan

' 

' 

' 

' 

' 

' 

' 

Message #15 by "Susan Henesy" <susan.henesy@w...> on Tue, 28 Aug 2001 19:21:18
Hi everyone,



I've got a new problem now!



I was given a chance to visit someone's Office 2000 PC, and gave a couple 

of the A2K front-ends a try. 



On the first database:  EXTREMELY SLOW.  Completely totally unacceptably 

and unbelievably slow!  The employee has a Pentium II, whilst I have a 

Pentium III, but I don't know if that should make it as awful as it was.  

I also copied the front-end to the user's C: drive and that didn't improve 

it one bit.  Oh my.  If this is to be the performance -- my company isn't 

going to let me get away with it.



Has anyone experienced this problem?  



On the other A2K database front-end, the database wouldn't open up a 

report.  I got a "debug" message that said it couldn't perform the 

action.  The "action" was nothing more than: 



DoCmd.ShowToolbar "Form View", acToolbarNo



This is totally acceptable according to A2K Help Files, so why is the code 

breaking here?  A2K *does* have a "Form View" toolbar, so whassup with 

*that*?



Even when I programmed it to "Resume Next" upon hitting that error, it 

tied up the system until we finally had to ALT-CTRL-DELETE it.



Help?!



Susan


  Return to Index