The information provided in this section
is intended to help you maximize processing speed and minimize network traffic
when you are running your reports. You will learn about the best ways to use
selection formulas and indexes in one-to-many situations to make your reporting
more efficient. If you do not use the information in this section, your reports
may end up processing dozens or even thousands more records than necessary.
When a one-to-many situation exists
between two database tables and the program matches up records from the tables,
there are a number of factors that determine how many records the program reads
and evaluates.
The tables that follow show the effects of
the different factors on the number of records the program ultimately has to
read. The charts are based on these assumptions:
Table A contains 26 records (one for
each letter in the alphabet).
Table B contains 2600 records (100
matching records for every record in Table A).
The scenario is to produce a report
that finds two specific records in Table A and the 200 records (100+100) in
Table B that match those two records in Table A.
In a best case scenario, the program
would only have to read about 200 records to accomplish the task.
In a worst case scenario the program
would have to read about 67,600 records to accomplish the same task.
Note: The performance
considerations for data files are different from the considerations for SQL
databases. A data file is any non-SQL database that is accessed directly from
Crystal Reports. For the purpose of this discussion, an SQL
database is any database capable of accepting SQL commands accessed directly
from
Crystal Reports or through ODBC as well as any other database
types that are accessed through ODBC.