Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

ms access performance and SSD

Posted on 2016-08-18
4
Medium Priority
?
199 Views
Last Modified: 2016-08-18
Hi Folks.
I need to increase an MS Access database performance. (10 concurrent and 10 other users)
The BE (200Mb) is on a shared drive on a newish virtual server (sharing MS Exchange)
Assuming all the normal database optimizations are done, two questions:
1. will a dedicated server improve things much?
2. will an SSD (D: drive) on the new server (just for the Access BE) improve things (much) more (than a 10,000 rpm SATA drive) on this new box.

I realize the existing server specs are vague, but all expert comment and personal experiences are welcome.
thanks
0
Comment
Question by:COACHMAN99
  • 2
4 Comments
 
LVL 40

Accepted Solution

by:
PatHartman earned 1000 total points
ID: 41761258
The two things that most effect Access database performance are:
1. LAN speed and available band width
2. Local Memory

Since all Access processing takes place on the local PC, the server used to host it is almost immaterial.

Make sure the application is split properly - meaning that each user has his own personal copy of the FE.
Make sure that the forms are bound to queries with select criteria to minimize the records selected.
Make sure none of your queries include domain functions such as DSum()
Make sure that your code loops are optimized
Use update queries rather than code loops for bulk updates.

Consider moving the BE to SQL Server - BUT - you will need to do all of the above and possibly other things to actually achieve better performance from SQL Server.  If your app is slow now, simply converting the BE to SQL Server will most likely make it slower.  You need to optimize the app first.

Strangely enough, moving to Citrix might improve performance.  When you use Citrix to host the app, ALL processing happens on the Citrix server (assuming the BE is there also) and so network latency doesn't come into play.  The only communication between the local PC and the Citrix server is the local PC sends keystrokes to the server and the server sends pictures to the local PC.  Data isn't pushed around the network at all.  This is why Citrix works so well for remote users.
0
 
LVL 58

Assisted Solution

by:Jim Dettman (Microsoft MVP/ EE MVE)
Jim Dettman (Microsoft MVP/ EE MVE) earned 1000 total points
ID: 41761264
<<1. will a dedicated server improve things much?>>

 Probably not.

<<2. will an SSD (D: drive) on the new server (just for the Access BE) improve things (much) more (than a 10,000 rpm SATA drive) on this new box.>>

  That's hard to say.  Depends on the client stations and the network.   Remember, with a JET/ACE BE, all DB processing is done by the client.  The server is just a file share.   It does also take care of holding locks, so if you have a CPU that is bottle necked, you would be better with a faster/seperate server.

<<Assuming all the normal database optimizations are done, two questions:>>

 I would focus first on all possible optimizations in the code.  For example, do you hold open a persistent connection to the BE for the life of the app?   If not, depending on the app, this can give a good jump in performance.

Some other things:
1. Do you have "UseTransactions" set to no on queries where it doesn't matter if they are re-run?
2. Do you open recordsets as snapshots?
3. Do you use CurrentDB() in a  loop at all?
4. Are you using a lot of Domain functions (ie. Dlookup) or use them in queries?
5. Compact and repair on a regular basis?
6. checked indexing?
7. Modified all queries so they recost since the DB has grown?

Food for thought...

Jim.
0
 
LVL 7

Author Comment

by:COACHMAN99
ID: 41761317
Thanks Pat and Jim; valuable input.
Jim, 2 questions:
1. what does 'Modified all queries so they recost since the DB has grown?' mean?
2. Is the best way to implement 'a persistent connection to the BE' via a bound field on the main form to a 'dummy' BE table?

thanks
0
 
LVL 40

Expert Comment

by:PatHartman
ID: 41761349
1. When you create a query and save it, Access calculates an execution plan for how to perform the query.  The best execution plan could change over time as table row counts change and indexes are added.  So, depending on how rapidly your BE grows or what design changes you make to the BE, you might want to consider compacting the FE periodically to force it to recalculate the execution plans.
2. I use my login form to do this.  The form is bound to the user table and when the user logs in, I open the menu but I don't close the login form, I just set its .visible property to False.
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

We live in a world of interfaces like the one in the title picture. VBA also allows to use interfaces which offers a lot of possibilities. This article describes how to use interfaces in VBA and how to work around their bugs.
Windows Explorer let you handle zip folders nearly as any other folder: Copy, move, change, and delete, etc. In VBA you can also handle normal files and folders, but zip folders takes a little more - and that you'll find here.
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question