MS Access Forum / Security / May 2007
To Split or not to Split
|
|
Thread rating:  |
Matt W. - 05 Apr 2007 18:40 GMT I have a database that only 1 person will be editing data. However about 60 people will have permission to certain forms. My question is if only one person will be editing and everyone else will just be able to view data, is it still necessary to split?
Ed Metcalfe - 05 Apr 2007 22:46 GMT Matt,
It's rarely *necessary* to split the database, but I would still recommend it.
Splitting the database makes releasing code updates far more straight forward. Performance can also be improved by installing the database frontend on each user's local drive (this means queries, forms, reports, code, etc. do not have to be loaded across the network).
Ed Metcalfe.
>I have a database that only 1 person will be editing data. However about 60 > people will have permission to certain forms. My question is if only one > person will be editing and everyone else will just be able to view data, > is > it still necessary to split? Matt W. - 06 Apr 2007 13:22 GMT Isn't there a way to update one form instead of changing 60 different forms if I split?
> Matt, > [quoted text clipped - 13 lines] > > is > > it still necessary to split? Matt W. - 06 Apr 2007 13:44 GMT Nevermind, i already know the answer to that question. I would make the change to the FE and update each users FE with that of the new one.
When manually splitting a secure database, I want to copy the original mdb and that will be my BE. Should I give it a .be extension or .mdb or doesn't it matter?
> Isn't there a way to update one form instead of changing 60 different forms > if I split? [quoted text clipped - 16 lines] > > > is > > > it still necessary to split? Joan Wild - 06 Apr 2007 14:09 GMT It doesn't matter what you name it.
 Signature Joan Wild Microsoft Access MVP
> Nevermind, i already know the answer to that question. I would make the > change to the FE and update each users FE with that of the new one. [quoted text clipped - 30 lines] >> > > is >> > > it still necessary to split? Tony Toews [MVP] - 06 Apr 2007 21:54 GMT >Splitting the database makes releasing code updates far more straight >forward. Agreed.
>Performance can also be improved by installing the database >frontend on each user's local drive (this means queries, forms, reports, >code, etc. do not have to be loaded across the network). Actually no. Performance is worsened. In A97 some reports went from 20 seconds to 20 minutes. However there are things you can do to get much of that performance back.
But the benefits of splitting far outweigh the downside.
Tony
 Signature Tony Toews, Microsoft Access MVP Please respond only in the newsgroups so that others can read the entire thread of messages. Microsoft Access Links, Hints, Tips & Accounting Systems at http://www.granite.ab.ca/accsmstr.htm
Ed Metcalfe - 07 Apr 2007 01:02 GMT >>Splitting the database makes releasing code updates far more straight >>forward. [quoted text clipped - 12 lines] > > Tony Tony,
I'm confused. I realise that accessing linked tables may be slower than accessing tables stored in the frontend, but surely loading forms, reports, code, etc from a database on the local drive is quicker than loading them over a network connection.
It's been a long time since I've used Access 97 (is the performance decrease with split databases resolved in later versions) but I don't recall *ever* having a form take 20 mins to open. I also don't recall there ever being that much of a difference in performance between split and unsplit databases.
Is this issue one that only affects bound forms perhaps? If so I wouldn't have seen it (I don't use them)...
Ed Metcalfe.
Tony Toews [MVP] - 07 Apr 2007 02:32 GMT >>>Performance can also be improved by installing the database >>>frontend on each user's local drive (this means queries, forms, reports, [quoted text clipped - 10 lines] >code, etc from a database on the local drive is quicker than loading them >over a network connection. Yes, having a FE MDB/MDE on the local system is faster than having it on the server. However, in my experience based on what I saw in A97, splitting the MDB made for much worse performance.
Also a client didn't want to copy the FE MDE onto the Citrix server so I setup the Auto FE Updater to copy the FE MDE from the distribution folder to a user defined folder on the same server. Then Access on the Citrix server was indeed pulling the forms, etc, across the network. While I'm sure the performance was worse than having the FE MDE on the server it wasn't that noticeable.
>It's been a long time since I've used Access 97 (is the performance decrease >with split databases resolved in later versions) but I don't recall *ever* >having a form take 20 mins to open. These were reports not forms.
>I also don't recall there ever being >that much of a difference in performance between split and unsplit >databases. There was but it was really noticeable on complex forms which had lots of subforms and combo boxes.
>Is this issue one that only affects bound forms perhaps? If so I wouldn't >have seen it (I don't use them)... I seldom use unbound forms so I couldn't tell you.
Tony
 Signature Tony Toews, Microsoft Access MVP Please respond only in the newsgroups so that others can read the entire thread of messages. Microsoft Access Links, Hints, Tips & Accounting Systems at http://www.granite.ab.ca/accsmstr.htm
Ed Metcalfe - 07 Apr 2007 02:37 GMT >>>>Performance can also be improved by installing the database >>>>frontend on each user's local drive (this means queries, forms, reports, [quoted text clipped - 43 lines] > > Tony Thanks Tony.
David W. Fenton - 08 Apr 2007 00:12 GMT > In A97 some reports went from > 20 seconds to 20 minutes. I never saw any such thing, Tony.
But, yes, splitting *can* worsen performance compared to an unsplit A97 MDB that was being shared on a server. But with later versions of Access, that wasn't even an option. A97 could cope with sharing a front end (split or not), but no later version Access can do it at all without very frequent corruption problems.
 Signature David W. Fenton http://www.dfenton.com/ usenet at dfenton dot com http://www.dfenton.com/DFA/
Tony Toews [MVP] - 08 Apr 2007 02:13 GMT >> In A97 some reports went from >> 20 seconds to 20 minutes. > >I never saw any such thing, Tony. <shrug> We had 100 page reports with each line having a one or two line subreport. That was particularly nasty. I moved the data from the subreport onto the main report and turned the fields off or on depending and got the report back to 20 seconds.
Tony
 Signature Tony Toews, Microsoft Access MVP Please respond only in the newsgroups so that others can read the entire thread of messages. Microsoft Access Links, Hints, Tips & Accounting Systems at http://www.granite.ab.ca/accsmstr.htm
David W. Fenton - 08 Apr 2007 00:10 GMT > It's rarely *necessary* to split the database, but I would still > recommend it. I would say in 99.999% of cases, it's ABSOLUTELY NECESSARY to split the database. The only exception would be the single-user database that is used by only one person who is also the database's designer (i.e., nobody else is making changes to the front end).
Deploying *unsplit* should be the *exception*, as split apps are the standard way to do it.
 Signature David W. Fenton http://www.dfenton.com/ usenet at dfenton dot com http://www.dfenton.com/DFA/
Ed Metcalfe - 08 Apr 2007 01:16 GMT >> It's rarely *necessary* to split the database, but I would still >> recommend it. [quoted text clipped - 6 lines] > Deploying *unsplit* should be the *exception*, as split apps are the > standard way to do it. David,
I agree.
I didn't really explain myself very well. What I really meant was it is rarely *essential* to split an Access database. It is certainly almost always a good idea to.
Ed Metcalfe.
David W. Fenton - 10 Apr 2007 22:11 GMT >>> It's rarely *necessary* to split the database, but I would still >>> recommend it. [quoted text clipped - 13 lines] > it is rarely *essential* to split an Access database. It is > certainly almost always a good idea to. And I'm DISAGREEING with you -- it *is* essential in all but the tiniest number of instances.
 Signature David W. Fenton http://www.dfenton.com/ usenet at dfenton dot com http://www.dfenton.com/DFA/
Keith Wilby - 11 Apr 2007 08:21 GMT > And I'm DISAGREEING with you -- it *is* essential in all but the > tiniest number of instances. FWIW I agree with David. For the amount of effort involved to split you might as well anyway since, in my experience, the chances of corruption are significantly decreased. I think that "it's rarely *necessary* to split the database" is very bad advice.
Keith. www.keithwilby.com
Ed Metcalfe - 14 Apr 2007 00:45 GMT >> And I'm DISAGREEING with you -- it *is* essential in all but the >> tiniest number of instances. [quoted text clipped - 6 lines] > Keith. > www.keithwilby.com Keith,
At no point have I advised anyone not to split their database. I thought I had made it fairly clear in my original post that I am advising that the database should be split...
Ed Metcalfe.
Chris Mills - 14 Apr 2007 02:37 GMT FWIW, a primary reason for me to split databases, is nothing to do with performance, whether it works, (all of which are probably true, hard to prove, and I accept as true...)
It's because, I can't replace the program with an updated one if live data is also mingled in with it!
This is probably why you get some people trying to modify programs "on-line" (which with my capacity for mistakes would be disastrous!)
I inherited one site with mixed program/data. I had to test what I would do at my site, then go to their site, get everyone out, and hopefully remember the mod I had tested. ----- For this reason, I split even a single-user database. OTOH I have had multiple users share a networked Front-End (A97) with no dire problems, but whether that is recommended or not is a separate issue from splitting! (I don't recommend such, I just used a guinea pig customer to try it)(not theory, actual tests!!!) ----- I note that Ed, in his first brief reply, correctly identified relevant issues. Then it got sidetracked by Tony Toews mentioning a potential performance downside of splitting. Then it got further sidetracked as to whether "rarely necessary" was an appropriate wording (probably not because it implied "advisable"). Ed has made it abundantly clear, I think, what will or may work vs what is recommended best practise.
I have indicated above, that even if unsplit databases work, they are clearly inconvenient. And since A2000, modifying live programs has become (either dangerous or impossible), whether or not the program is mixed up with data or just a split shared Front-End.
No complaints from me, Ed! :-) Chris
Ed Metcalfe - 14 Apr 2007 02:49 GMT > No complaints from me, Ed! :-) > Chris Thank you Chris. :-)
Chris Mills - 14 Apr 2007 07:23 GMT For the likes of the David Fenton's etc (whom I respect very greatly and agree with BTW), it must be assumed that he has actually TESTED the various options. Yet the averrance to suggesting testing this or that alternative, might suggest they/he never tried anything else themselves other than the "official line"?
It's an established scientific principle, that anyone "following" should also TEST for themselves, not merely take established dogma. Otherwise, we would still be following Newtonian gravity rather than Einstein's General Theory of Relativity...
EVERYONE should take the established "facts", or theories, and test them again for themselves. Just occasionally, someone might question whether it's needed (say) to remove Admin from the Admins group, for a recent independent example. (there is no very good factual reason!)
Good on ya for kicking up a minor stormdust, Ed. Even if completely wrong, the OP sure got some opinions!
(my own experience of "access corruption", though more often than I would like, I am unable to relate to some of the purported causes. That's because, like David Fenton, I use the recommended layout most times, and therefore have little statistical data on the "unrecommended methods". All but one or two of my 500 or 600 sites use recommended methods, and therefore my nbr sites means nothing in respect of alternatives!)
(We must presume that David, etc, has extensive experience of "bad practise"!)
Chris
> > No complaints from me, Ed! :-) > > Chris > > Thank you Chris. :-) David W. Fenton - 16 Apr 2007 14:49 GMT > For the likes of the David Fenton's etc (whom I respect very > greatly and agree with BTW), it must be assumed that he has > actually TESTED the various options. Yet the averrance to > suggesting testing this or that alternative, might suggest they/he > never tried anything else themselves other than the "official > line"? I have never created an Access application that was unsplit in production use.
But I've taken over a lot of them when I was hired to fix the problems the users were encountering.
So, yes, I've got plenty of experience with unsplit databases -- just not ones designed by *me*.
 Signature David W. Fenton http://www.dfenton.com/ usenet at dfenton dot com http://www.dfenton.com/DFA/
Chris Mills - 04 May 2007 12:45 GMT "David W. Fenton" wrote in message
> I have never created an Access application that was unsplit in > production use. [quoted text clipped - 4 lines] > So, yes, I've got plenty of experience with unsplit databases -- > just not ones designed by *me*. And very much appreciated, David.
My experience (of taking over unsplit databases) is limited to one in A2.0 (a point-of-sale critical one for a retail outlet). There were no problems at all (that is, there were plenty of problems, but none directly attributable to being unsplit, or let's say I never proved such!)(it was split, for a reason you would need to ask the deceased Batchelor of Engineering programmer, who taught me a thing or two otherwise, by functions ie departments)
Since I don't write unsplit databases, my experience of that is naturally limited. Slightly related, is that I HAVE run an A97 database, Front-End SHARED on a server amongst 1/2 doz. NO PROBS. I don't recommend it, I just did it on one site for the hell of it (and easier during initial "volatile" development!)
Of course, you mentioned a big change after A97 (ie A2000 onwards). So far as I've read, that's to do with the bad practice of modifying a design on-line ie whilst live (barely possible, and thinks: where are the backups even if possible?) But this is the first I can recall reading that such causes "corruptions" (as distinct from just whilst trying to modify the design of a live database!)
And whilst we're at it, let's mention (with the greatest respect and interest, no sarcasm), Tom Wickerath backed up by posts from Peter Miller, that memo or large object fields are apparently more prone to corruptions because the actual data is contained on the "heap". That may be so. Some of my programs are 90% memo fields, for reasons which are irrelevant here (well, because my program is so general-purpose that it doesn't put any operator-limit within reason), and, I claim, I suffer corruptions like anyone but not so much as, for instance, Tom would claim experience of!
So. Are the untoward corruptions because they were unsplit, or split but shared FE, or had too many memo fields, or were running A2000 or later, or on a WAN, or whatever else you say it suffered from? You must be very old to have experience of all of them!
(My most memorable anecdotal experiences of corruption is this: one or several of my customers starts experiencing them perhaps daily, but no others do so it's not the program or "layout" per se. It's...it's...never provable but either a) they have a bad operator who aborts out of the program b) a subtly corrupted FE or BE which nevertheless passes all tests c) a bad network or errant PC or something. Anyway, I solved those sites through no fault of my own, eventually they stabilised, so they either fired the errant personnel, changed their computer or network, and I never did find out why they stabilised because they were remote sites so I couldn't analyse it even if I knew how. They already had all the std Access layout recommendations. Perhaps some of the PC's weren't SP'd, but anyone claiming experience would at least know that asking by telephone results in "honest lies". :-)
Now, I don't for a moment recommend unsplit, (Tony Toews came up with the only interesting reason), and neither do I read does Ed. But at the same time, it seems to be the least of my worries. Are you saying the sites you took over were suffering from corruptions which you solved by splitting? Did anything else change concommitant with those changes which might have relevance? (eg did you improve the code as well or PC's or network or something?) It is sooo easy to be misled, including myself of course. Such as blaming corruptions on unsplit with no adequately controlled experiment. Anecdotal evidence I ackowledge as important however, because I have no direct evidence either way either. If you do, then you haven't presented it beyond a generality.
My purpose, is that this stuff worries me, as I'm sure it does all Access programmers, and that is all I mean. Chris :-)
David W. Fenton - 05 May 2007 00:10 GMT []
> Since I don't write unsplit databases, my experience of that is > naturally limited. Slightly related, is that I HAVE run an A97 > database, Front-End SHARED on a server amongst 1/2 doz. NO PROBS. > I don't recommend it, I just did it on one site for the hell of it > (and easier during initial "volatile" development!) A97 was more tolerant of a shared front end, but I never did it except as a stop-gap.
> Of course, you mentioned a big change after A97 (ie A2000 > onwards). So far as I've read, that's to do with the bad practice [quoted text clipped - 3 lines] > distinct from just whilst trying to modify the design of a live > database!) Well, you *can't* modify a live A2K+ front end unless you have exclusive access to it. This is because of the monolithic save model, where the whole Access project (the forms/reports/etc.) are saved in a BLOB field of a single record in a system table, as opposed to A97 and earlier, where each object was a separate record. Two people can't be editing a single record simultaneously unless you use optimistic locking and Microsoft chose PESSIMISTIC locking for the Access project. Thus, simultaneous editing of the Access project is PROHIBITED at the program level.
I shudder to think what would have happened if they'd chosen optimistic locking. Of course, I'm skeptical of the benefits of the monolithic save model in the first place -- seems like a sour grapes response to a problem that could have been solved in another way. For one, I don't edit front ends live, since my users don't share them, so it seems to me that they could have kept the old save model and required exclusive access for editing the Access project records and gotten the stability they claim the monolithic save model was implemented to provide without any of the horrid downside of it (speed, increased dangers of corruption).
> And whilst we're at it, let's mention (with the greatest respect > and interest, no sarcasm), Tom Wickerath backed up by posts from [quoted text clipped - 5 lines] > reason), and, I claim, I suffer corruptions like anyone but not so > much as, for instance, Tom would claim experience of! It's quite well-known that memo field data is not stored with the record it belongs to but that only a pointer to the data page where the memo's data is located is stored with the record. That point can become easily corrupted, and that's the source of instability with memo fields. The easiest way to work around it is to not edit memos in bound controls.
> So. Are the untoward corruptions because they were unsplit, or > split but shared FE, or had too many memo fields, or were running > A2000 or later, or on a WAN, or whatever else you say it suffered > from? You must be very old to have experience of all of them! I don't know. It depends on the contexts.
If you split, but share the front end, you're not getting most of the benefit of splitting, so I don't see why anyone would do that (except extreme laziness, which is the only reason I've ever done it).
Memo corruption has little of nothing to do with the splitting issue. It's entirely a multi-user and network stability issue.
> (My most memorable anecdotal experiences of corruption is this: > one or several of my customers starts experiencing them perhaps [quoted text clipped - 10 lines] > weren't SP'd, but anyone claiming experience would at least know > that asking by telephone results in "honest lies". :-) It's very easy for PCs to revert to non-stable versions of Access/Jet. Most of my A2K and later apps have code that logs the Access and Jet versions at sign-on. I don't prevent them from running if they don't have the correct ones, but if something goes wrong, I check that log table first to see if anyone is running with inappropriate software updates. This is almost always the source of corruption that pops up in an environment that has historically been stable.
> Now, I don't for a moment recommend unsplit, (Tony Toews came up > with the only interesting reason), and neither do I read does Ed. > But at the same time, it seems to be the least of my worries. Are > you saying the sites you took over were suffering from corruptions > which you solved by splitting? Some were. One Access 2 site was running unsplit with a shared Access 2 database when they converted everybody to Windows 2000. They had terrible problems (partly due to not knowing to install the Jet 2.5 service pack, but mostly to incompatibilities in Win2K). Splitting and putting the front end on everybody's workstation ended the corruption immediately.
Another client was using A2K and had the same problem, unsplit and shared. Splitting and putting front ends on the workstations fixed the problem.
> Did anything > else change concommitant with those changes which might have > relevance? (eg did you improve the code as well or PC's or network > or something?) In these kinds of situations, which I consider emergencies, the first thing is stability. I split and distribute front ends to all the users. At that point, the problems simply go away. No further work is needed to figure out if there are code issues.
> It is sooo > easy to be misled, including myself of course. Such as blaming > corruptions on unsplit with no adequately controlled experiment. > Anecdotal evidence I ackowledge as important however, because I > have no direct evidence either way either. If you do, then you > haven't presented it beyond a generality. It's not that split apps never corrupt. It's that the most likely cause of corruption in an unsplit app is that it's unsplit and, consequently, shared. I don't believe in sharing a front end, so I never even contemplate splitting and sharing.
> My purpose, is that this stuff worries me, as I'm sure it does all > Access programmers, and that is all I mean. I believe there are absolutely no valid objections to splitting and giving an individual front end to each user. Given that this is the optimal environment, I don't do any experimenting with any of the other options, as I consider it a complete waste of time. Why investigate something that I can prove is conceptually prone to failure in some cases, even if it might very well work in many?
 Signature David W. Fenton http://www.dfenton.com/ usenet at dfenton dot com http://www.dfenton.com/DFA/
Keith Wilby - 16 Apr 2007 10:00 GMT >>> And I'm DISAGREEING with you -- it *is* essential in all but the >>> tiniest number of instances. [quoted text clipped - 14 lines] > > Ed Metcalfe. That's no doubt true Ed but I still think that the statement "it's rarely *necessary* to split the database" is wrong, that's all I'm saying, I'm not trying to be confrontational.
Keith.
Tony Toews [MVP] - 06 Apr 2007 21:54 GMT >I have a database that only 1 person will be editing data. However about 60 >people will have permission to certain forms. My question is if only one >person will be editing and everyone else will just be able to view data, is >it still necessary to split? See the "Splitting your app into a front end and back end Tips" page at http://www.granite.ab.ca/access/splitapp/ for more info. See the Auto FE Updater downloads page http://www.granite.ab.ca/access/autofe.htm to make this relatively painless.. The utility also supports Terminal Server/Citrix quite nicely.
Tony
 Signature Tony Toews, Microsoft Access MVP Please respond only in the newsgroups so that others can read the entire thread of messages. Microsoft Access Links, Hints, Tips & Accounting Systems at http://www.granite.ab.ca/accsmstr.htm
|
|
|