shumaker@cs.fsu.edu wrote in
news:1148596458.706339.21600@j73g2000cwa.googlegro ups.com:
[color=blue]
> I'm wondering if adding an autonumber primary key will improve
> the performance of a multiuser access database on a network
> share. I have a website that lists many tips for improving
> performance of access, but doesn't mention primary keys.
>
> However, it seems logical to think that having no primary key
> means that when a user updates a record, the database has to
> do comparisons on multiple fields to identify the specific
> record being updated. With a primary key, the database can
> index into that primary key of the record being updated much
> quicker.
>
> Does this make sense?[/color]
If the tables are stored in an ODBC database, you can't update
without a primary key, whether an autonumber,single field or
multiple column index.
If the tables are stored in Access then the situation is
different. If you use update queries to change the data, it
makes sense. Access will create hidden indexes for such things.
but the creation of an index will slow the process down.
However, updating via a bound form does not need indexes as the
correct record is already known (and displayed in the form)
[color=blue]
> If not, I'm wondering, if I update a field in a record via a
> form, how does the database identify quickly which record is
> being updated and write that update. Does it generate some
> sort of hidden index on it's own that is used for this
> purpose?[/color]
Doesn't need to find the record, it's already at the record.
[color=blue]
> I could create an index on a text field that contains very few
> duplicates, but does that index only get used for queries that
> use it in the where clause?[/color]
Queries, forms and reports will use existing indexes if they are
there. If they are not there, Access will usually create a
hidden index linked to the object.[color=blue]
>
> The most notable performance problem is users flipping between
> records on a form after making updates to the record. The
> form is based on a query that takes the user's initials and
> pulls all records that have those initials in a partiulcar
> field. So each user has a mutually exclusive set of records
> they are working on, but the records are all from the same
> table, and each suer has 200-1000 records at a time.
>[/color]
this should not be a problem, Try creating an index on the sort
order used in the form.
--
Bob Quintal
PA is y I've altered my email address.