RE: Database running over network runs extremely slow
- From: Nicholas Scarpinato <NicholasScarpinato@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 8 Apr 2008 12:53:02 -0700
Comments inline:
"Dale Fye" wrote:
45 seconds is a long time to search 3000 records.
You're tellin' me... my boss flipped out when he saw how long this process
was taking. Our end users were complaning that it was taking them up to ten
minutes to process a single item... obviously that was a bit of an
exaggeration. I have reports built into the database that track the entry
times, so I know how long it was really taking... but it was still entirely
too long. The new changes I've made seem to have done the trick though, I
haven't heard any complaints since I switched my end users to the new front
end.
The first question I would ask is: do you have indexes setup on the fields
you are searching (or using in your DLOOKUPs criteria parameter)? I would
guess not based on the speed of your processing. This is a necessity if you
really want to make your application scream.
I didn't have them before, but I do now... in fact I had just done so today
before you replied. That, along with some minor code changes to convert some
of the DLookups to looped recordset searches, has made a dramatic improvement
in speed.
The second thing I would ask is: do you have your database split into
Front-end (Forms, queries, reports) and Back-end (data only)? If not, you
need to do this, and put the front-end on each users machine.
Yes, that was one of the first things I did after designing the basic table
structure.
The third question I would ask is: are you users running the application on
a LAN or a WAN? If over a WAN, I suggest you read this paper by Albert
Kallal (http://members.shaw.ca/AlbertKallal/Wan/Wans.html)
We're on a WAN, technically... I'm in Dallas and our network servers are
accessible to people in our San Francisco office, but we have our own network
share specificially for this database that nobody else uses, and that share
is local to our office.
Another question (I've run into this lately): Are your users hard wired to
the network, or are they running over a wireless lan? This will also
contribute to slow processing in Access.
Four of the computers that are being used in the system are all hooked up to
the same router via cable, although my machine is currently on a wireless
connection to that same router (it's not the ideal situation, but I just
moved to a new desk and they haven't set run a cable over to my machine yet).
In your example, you indicate that your form is unbound, and that when a
particular type of data is read, it searches the database for data and
returns that info, using DLOOKUPs. When working with a split database over a
LAN, I prefer to use bound forms, but I give the users unbound controls in
the forms header or provide seperate search/filter forms to allow the user to
search for specific data. I'm sure that this is faster than retreiving a
bunch of data using DLOOKUP statements.
I originally tried using a bound form, but it created some rather strange
issues due to the way this database is used. It just worked better to have an
unbound form that updated the table via an append query ran after each entry
is completed. As I mentioned previously, most of the DLookups on this form
have been converted to a looped recordset search, which seems to be working
much faster. (I'm sure putting indexes on all the fields helped a lot as
well.)
HTH.
Dale
--
Don''t forget to rate the post if it was helpful!
email address is invalid
Please reply to newsgroup only.
"Nicholas Scarpinato" wrote:
Hello. I have an Access 2007 database that is currently used by three to five
people. I have an unbound entry form that is used to enter data, and on this
form a lot of the data that is entered is parsed via code. The code takes the
entered data, looks to see if that data is contained in various tables
(depending on what piece of data is entered), and then displays the data in
those tables. For example, when a barcode of a SKU is scanned, the database
finds the SKU in the Item Numbers table and displays the description and the
part number. The problem I'm having is that this searching process can take
up to 45 seconds to search a 3000 record table with four fields. Most of the
searching is done with Dlookups, but I'm converting some of it back to looped
recordset searches because they seem to be running a lot faster. So I guess
my question is, does anyone have some tips to help me improve the performance
of this database? Are looped recordset searches going to be faster than
DLookup searches over a linked database on a network?
- Follow-Ups:
- Re: Database running over network runs extremely slow
- From: Dale Fye
- Re: Database running over network runs extremely slow
- References:
- Database running over network runs extremely slow
- From: Nicholas Scarpinato
- RE: Database running over network runs extremely slow
- From: Dale Fye
- Database running over network runs extremely slow
- Prev by Date: Re: Confounded...
- Next by Date: RE: What kind of date format for repeating events?
- Previous by thread: RE: Database running over network runs extremely slow
- Next by thread: Re: Database running over network runs extremely slow
- Index(es):
Relevant Pages
|