cancel
Showing results for 
Search instead for 
Did you mean: 

Crystal report 2008 Performance issue

Former Member
0 Kudos

Hello,

I've been working on CR2008 for quite some time now and it looks good to me for most of my reports. However, recently i've been facing lot of performance issues. The report takes more than 15 minutes to process only for seventeen lakhs and fifty six thousand records which does not look big, i have checked indexing on server to speed up the query process but no luck. Please let me know is there ant registry entry on the BO server or from within crystal designer which could help in speeding the process.

I am using CR2008, with SQL 2005 . The data size is apprx. 5 Gb

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Suveer,

The performance of a report is related to

External factors:

1. The amount of time the database server takes to process the SQL query.

( Crystal Reports send the SQL query to the database, the database process it, and returns the data set to Crystal Reports. )

2. Network traffics.

3. Local computer processor speed.

( When Crystal Reports receives the data set, it generates a temp file to further filter the data when necessary, as well as to group, sort, process formulas, ... )

4. The number of records returned

( If a SQL query returns a large number of records, it will take longer to format and display than if was returning a smaller data set.)

Report design:

1. Where is the Record Selection evaluated?

Ensure your Record Selection Formula can be translated in SQL, so the data can be filter down on the server, otherwise the filtering will be done in a temp file on the local machine which will be much slower.

They have many functions that cannot be translated in SQL because they may not have a standard SQL for it.

For example, control structure like IF THEN ELSE cannot be translated into SQL. It will always be evaluated

in Crystal Reports. But if you use an IF THEN ELSE on a parameter, it will convert the result of the condition to

SQL, but as soon as uses database fileds in the conditions it will not be translated in SQL.

2. How many subreports the report contains and in section section they are located.

Minimise the number of subreports used, or avoid using subreports if possible because

subreports are reports within a report, and if you have a subreport in a details section, and the report returns 100

records, the subreport will be evaluated 100 times, so it will query the database 100 times. It is often the biggest

factor why a report takes a long time to preview.

3. How many records will be returned to the report.

Large number of records will slow down the preview of the reports. Ensure you only returns the necessary data on the report, by creating a Record Selection Formula, or basing your report off a Stored Procedure, or a Command Object that only returns the desired data set.

4. Do you use the special field "Page N of M", or "TotalPageCount"

When the special field "Page N of M" or "TotalPageCount" is used on a report, it will have to generate each page

of the report before it displays the first page, therfore it will take more time to display the first page of the report.

If you want to improve the speed of a report, remove the special field "Page N of M" or "Total Page Count" or formula that uses the function "TotalPageCount". If those aren't use when you view a report it only format the page requested. It won't format the whole report.

5. Link tables on indexed fields whenever possible.

6. Remove unused tables, unused formulas, unused running totals from the report.

7. Suppress unnecessary sections.

8. For summaries, use conditional formulas instead of running totals when possible.

9. Whenever possible, limit records through selection, not suppression.

10. Use SQL expressions to convert fields to be used in record selection instead of using formula functions.

For example, if you need to concatenate 2 fields together, instead of doing it in a formula, you can create a SQL Expression Field. It will concatenate the fields on the database server, instead of doing in Crystal Reports.

SQL Expression Fields are added to the SELECT clause of the SQL Query send to the database.

11. Using one command as the datasource can be faster if you returns only the desired data set. It can be faster if the SQL query written only return the desired data.

12. Perform grouping on server

This is only relevant if you only need to return the summary to your report but not the details. It will be faster as less data will be returned to the reports.

Regards,

Shweta

Former Member
0 Kudos

Thank you Shweta for the prompt response on this. I am aware of all these factors which you mentioned above and I have checked all of them before posting my question. I agree my report has more than one sub report and also i have used lot of conditional formatting (if then else functions) in my report section as my report being dynamic all the time using parameters.

I have kept a close watch on my record selection formula and i get data only for records which i want. I am not using any page number functions in my report section but however i have concatenated field using crystal syntax formula rather than SQL expression (which i can try).

I appreciate all your help on this. Thank you.

Answers (0)