To check the performance of your compiled Crystal Report designed reports:
Goto menu - Report / Performance Information
Tip #1 - Use the Fastest Database Connection
There are many types of database connections in Crystal Reports, e.g. native connections, ODBC drivers and OLE DB providers, etc.
Normally native connections are the fastest, but check to ensure that it provides the most effective method of connecting to the data.
ODBC drivers may out perform native drivers.
If using OLE DB ensure that the best provider is used for the job
Tip #2 - Get the server to do most of the work!!!
As the data is usually stored on a Server machine, which normally has better resources than a desktop computer, thus its processing power will be better.
Goto File / Options / Database
Select the checkbox options for:
- Use Index or Server for Speed
- Perform Grouping on Server
This results in Crystal Reports adding an ORDER BY clause to the report query, which means that a sort result set will be returned to Crystal Reports.
Tip #3 - Use Indexed Fields
Although not required when working with SQL databases, using indexed fields for linking and record selection, will improve the performance of queries.
The SQL Server database engine determines automatically which indexes to use to create the best performance.
Designers can increase performance by selecting the fields that need to be indexed when linking and/or creating record selection criteria.
Tip #4 - Reduce the No. of Records
The fewer records a report contains the faster the report will compile.
Record filtering occurs in the Pass #1 stage, therefore the rest of the report compiling will benefit.
The best way of doing this is to use parameter fields in the selection formula.
Tip #5 - Report Sorting and/or Grouping
When applying sorting and/or grouping to reports, it is better to use table fields rather than formula fields.
If a formula field is used in sorting or grouping of a report, then Crystal Reports will sort the report locally.
If a formula is being used in the sorting and/or grouping, it would be better to use SQL Expression fields, to enable the Perform Groupiong on Server to still work.