473,385 Members | 1,647 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

Do I understand form optimization correctly?

I'm developing my first multi-user application, and have been reading a lot
about the basics of multi-user optimization (ADH vol 2, this newsgroup's
archives, etc.). I've decided to go with a file server system (mdb backend
on network), and I want to design it so that it runs efficiently. There will
be 5-10 concurrent users and ~30,000 records. I'm trying to optimize it by
addressing the most important issues first. I've been focusing on the idea
of having forms 'serve up' only a few records at a time, rather than a whole
table's worth, and I wonder if some of you pros can help me confirm that I'm
understanding it correctly. So here goes:

1) If I bind a form to a query that filters the records with a 'WHERE'
clause, and the field in the 'WHERE' is indexed, the backend will send the
whole index across the wire, but not "the whole table" as some people seem
to say, right? Then the front end will search the index and request the
records that match the WHERE clause, and then only those records will be
sent. Is that right?

If this is correct, then a lot less network traffic will be created, but
there will be a lot of searching of indexes: every time the user 'navigates'
to a new record a new query is run. So does that mean that searching large
indices is faster than sending lots of data? Or does it depend on the
details of the network?

2) In the WHERE clause that limits the recordsource, does using "LIKE" slow
things down a lot? For example, to get all customers whose last names start
with "smi". How about if I do something like "SELECT top 10 ... order by
myIndexedField" ? Will that be a lot slower than limiting records with
'WHERE'?

3) For subform recordsources, I usually use saved queries with "WHERE
myfield = forms!parentform.control_bound_to_PK_field". Is this a good way to
go, and is it a lot better than using the "link master/child" fields
properties, for the same reason as in (1) above?

Thanks very much in advance. This newsgroup is wonderful!
-john
Nov 13 '05 #1
3 1416
John Welch wrote:
I'm developing my first multi-user application, and have been reading a lot
about the basics of multi-user optimization (ADH vol 2, this newsgroup's
archives, etc.). I've decided to go with a file server system (mdb backend
on network), and I want to design it so that it runs efficiently. There will
be 5-10 concurrent users and ~30,000 records. I'm trying to optimize it by
addressing the most important issues first. I've been focusing on the idea
of having forms 'serve up' only a few records at a time, rather than a whole
table's worth, and I wonder if some of you pros can help me confirm that I'm
understanding it correctly. So here goes:

1) If I bind a form to a query that filters the records with a 'WHERE'
clause, and the field in the 'WHERE' is indexed, the backend will send the
whole index across the wire, but not "the whole table" as some people seem
to say, right? Then the front end will search the index and request the
records that match the WHERE clause, and then only those records will be
sent. Is that right?

If this is correct, then a lot less network traffic will be created, but
there will be a lot of searching of indexes: every time the user 'navigates'
to a new record a new query is run. So does that mean that searching large
indices is faster than sending lots of data? Or does it depend on the
details of the network?
Someone here has that knowledge at their fingertips. But I wouldn't
worry about it. If you have the right indexes (links from key to
foreign key and fields on where filtering will occur) then your results
should be near instantaneous. 30K records is not very many.
2) In the WHERE clause that limits the recordsource, does using "LIKE" slow
things down a lot? For example, to get all customers whose last names start
with "smi". How about if I do something like "SELECT top 10 ... order by
myIndexedField" ? Will that be a lot slower than limiting records with
'WHERE'?
For 30K records, I should think everything will be as near instantaneous
as to be considered instanteneous by users.

3) For subform recordsources, I usually use saved queries with "WHERE
myfield = forms!parentform.control_bound_to_PK_field". Is this a good way to
go, and is it a lot better than using the "link master/child" fields
properties, for the same reason as in (1) above?
Just more work. You have to keep remember to requery the recordset when
you move from record to record. I figure, with your example, why
bother? I'd use master/child properties. There are times you'd want to
do what you want...for example if you plug a subform into an unbound form.

Thanks very much in advance. This newsgroup is wonderful!
-john

Nov 13 '05 #2
To answer your question, no, it won't matter how you execute the
queries on an Access database. Access is file based, not server based.
If you run any query on the table, the entire table is brought down to
your machine, and the query is executed. With 30,000 records this
won't be a big deal, just wanted you to know for future projects and/or
scalability.
Chris Nebinger
John Welch (remove +'s) wrote:
I'm developing my first multi-user application, and have been reading a lot
about the basics of multi-user optimization (ADH vol 2, this newsgroup's
archives, etc.). I've decided to go with a file server system (mdb backend
on network), and I want to design it so that it runs efficiently. There will
be 5-10 concurrent users and ~30,000 records. I'm trying to optimize it by
addressing the most important issues first. I've been focusing on the idea
of having forms 'serve up' only a few records at a time, rather than a whole
table's worth, and I wonder if some of you pros can help me confirm that I'm
understanding it correctly. So here goes:

1) If I bind a form to a query that filters the records with a 'WHERE'
clause, and the field in the 'WHERE' is indexed, the backend will send the
whole index across the wire, but not "the whole table" as some people seem
to say, right? Then the front end will search the index and request the
records that match the WHERE clause, and then only those records will be
sent. Is that right?

If this is correct, then a lot less network traffic will be created, but
there will be a lot of searching of indexes: every time the user 'navigates'
to a new record a new query is run. So does that mean that searching large
indices is faster than sending lots of data? Or does it depend on the
details of the network?

2) In the WHERE clause that limits the recordsource, does using "LIKE" slow
things down a lot? For example, to get all customers whose last names start
with "smi". How about if I do something like "SELECT top 10 ... order by
myIndexedField" ? Will that be a lot slower than limiting records with
'WHERE'?

3) For subform recordsources, I usually use saved queries with "WHERE
myfield = forms!parentform.control_bound_to_PK_field". Is this a good way to
go, and is it a lot better than using the "link master/child" fields
properties, for the same reason as in (1) above?

Thanks very much in advance. This newsgroup is wonderful!
-john


Nov 13 '05 #3
To answer your question, no, it won't matter how you execute the
queries on an Access database. Access is file based, not server based.
If you run any query on the table, the entire table is brought down to
your machine, and the query is executed.
I don't think this is correct, actually. That's why I was asking: because a
lot of people say that each query has to retreive the 'whole table', but I
think if the fields are indexed, then only the index has to be sent. Can
someone who really knows settle this?


Chris Nebinger
John Welch (remove +'s) wrote:
I'm developing my first multi-user application, and have been reading a
lot
about the basics of multi-user optimization (ADH vol 2, this newsgroup's
archives, etc.). I've decided to go with a file server system (mdb
backend
on network), and I want to design it so that it runs efficiently. There
will
be 5-10 concurrent users and ~30,000 records. I'm trying to optimize it
by
addressing the most important issues first. I've been focusing on the
idea
of having forms 'serve up' only a few records at a time, rather than a
whole
table's worth, and I wonder if some of you pros can help me confirm that
I'm
understanding it correctly. So here goes:

1) If I bind a form to a query that filters the records with a 'WHERE'
clause, and the field in the 'WHERE' is indexed, the backend will send
the
whole index across the wire, but not "the whole table" as some people
seem
to say, right? Then the front end will search the index and request the
records that match the WHERE clause, and then only those records will be
sent. Is that right?

If this is correct, then a lot less network traffic will be created, but
there will be a lot of searching of indexes: every time the user
'navigates'
to a new record a new query is run. So does that mean that searching
large
indices is faster than sending lots of data? Or does it depend on the
details of the network?

2) In the WHERE clause that limits the recordsource, does using "LIKE"
slow
things down a lot? For example, to get all customers whose last names
start
with "smi". How about if I do something like "SELECT top 10 ... order
by
myIndexedField" ? Will that be a lot slower than limiting records with
'WHERE'?

3) For subform recordsources, I usually use saved queries with "WHERE
myfield = forms!parentform.control_bound_to_PK_field". Is this a good way
to
go, and is it a lot better than using the "link master/child" fields
properties, for the same reason as in (1) above?

Thanks very much in advance. This newsgroup is wonderful!
-john

Nov 13 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

10
by: Noozer | last post by:
Below is some ASP, HTML and javascript. It is part of a page used to maintain a small database. This code did work at one time, but has since stopped. For some reason the data on my form is not...
12
by: WantedToBeDBA | last post by:
Hi all, db2 => create table emp(empno int not null primary key, \ db2 (cont.) => sex char(1) not null constraint s_check check \ db2 (cont.) => (sex in ('m','f')) \ db2 (cont.) => not enforced...
14
by: joshc | last post by:
I'm writing some C to be used in an embedded environment and the code needs to be optimized. I have a question about optimizing compilers in general. I'm using GCC for the workstation and Diab...
7
by: Dale | last post by:
A year or two ago, I read an article on Microsoft's MSDN or Patterns and Practices site about application optimization when using strings. Some of the recommendations were: use string.Empty...
5
by: wkaras | last post by:
I've compiled this code: const int x0 = 10; const int x1 = 20; const int x2 = 30; int x = { x2, x0, x1 }; struct Y {
4
by: Peyman | last post by:
Hi, I was reading the source code of an implementation of STL by HP company 1994, and Silicon Graphics Computer Systems, Inc. 1996, 1997. Which I found that for implementing a Linked List, they...
16
by: anon.asdf | last post by:
Hi! On a machine of *given architecture* (in terms of endianness etc.), I want to access the individual bytes of a long (*once-off*) as fast as possible. Is version A, version B, or version...
10
by: Markus Grunwald | last post by:
Hello, while implementing a simple algorithm for digital filters (IIR filters), I got very confused about the very bad performance. This is the code, discussion follows: /**...
20
by: Ravikiran | last post by:
Hi Friends, I wanted know about whatt is ment by zero optimization and sign optimization and its differences.... Thank you...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.