11/25/2024 10:39:14 AM
|
|
slxdeveloper.com Community Forums |
|
|
|
The Forums on slxdeveloper.com are now retired. The forum archive will remain available for the time being. Thank you for your participation on slxdeveloper.com!
Forum to discuss reports for SalesLogix including Crystal, SQL Reports, etc. View the code of conduct for posting guidelines.
|
|
|
|
Crystal Reports performance issues
Posted: 09 May 08 3:46 PM
|
Two weeks ago I upgraded a customer database from 6.2 to 7.2, which as you know also upgrades Crystal Reports run time from version 8.5 to 11
On these users machines, there is a button which they use frequently to generate a report on a ticket. In testing, the report in 6.2 took 1.4 seconds to run and in 7.2 takes 11 seconds to run. They're frequently complaining about the performance loss, and I'm working on improving performance by adding indexes. Not a problem there.
Here's what I noticed in the profiler, comparing the jobs of the two:
When retrieving the database schema, in 6.2 it used SELECT * FROM TICKETPROBLEM WHERE 0 = 1 (replacing ticketproblem with a different table, and running these statements about 50 times). What's interesting is that it retrieves database schemas multiple times - ticketsolution for example appears six times in the retrieval process. It's only referenced once in the report, and is not referenced in the conditions.
In 7.2, it uses the similar syntax IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS, [TABLE_CATALOG=""][TABLE_SCHEMA=""][TABLE_NAME="ACCOUNT"][COLUMN_NAME=""])
It seems to do it about twice as many times (88 by my count) but what's interesting here is that these statements run a LOT slower than the simple select statements. It's probably related to processing the results returned, which are accurate, but either way it's very painful.
The 7.2 method takes ~ 8 seconds on my test machine, while the 6.2 method takes 1 second. (The machines are very similar - they're both virtual machines running on the same physical system)
Is there a way to optimize the GetRowset functionality to improve the performance internal to crystal reports? Do I need to add an index to something internal to the system to improve this?
Thanks in advance! Brian |
|
|
|
You can
subscribe to receive a daily forum digest in your
user profile. View the site code
of conduct for posting guidelines.
Forum RSS Feed - Subscribe to the forum RSS feed to keep on top of the latest forum activity!
|
|
|
|
|
|
|
|