BBS & Report Sharphooter perfromance issue.


Author
Message
Larry Caylor
Larry Caylor
StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)
Group: Awaiting Activation
Posts: 592, Visits: 3.7K
Attached is a sample program that creates two Report Sharpshooter reports; one using a SF BBS as the data source and one that uses a dataset. Aside from the data source both reports are identical. The sample program uses the SF Sample database as its data source. What I've found is that when a BBS is used as a data source, it takes RSS longer to render the report and the rendering time increases dramatically as the number of records increases. The SF sample DB only contins around 19K customer records but this is sufficient to demonstrate the difference. On my development system the BBS based report takes about 43 seconds to render while the dataset based report takes about 6 seconds. The tests were run outside of VS. Is this to be expected when using a BBS as a report data source or am I missing something that could improve performance? The sample was created using SF 1.7.0.2 and RSS 4.0.3.5.
Attachments
RSSRenderingTest.zip (133 views, 451.00 KB)
Edhy Rijo
E
StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)
Group: StrataFrame Users
Posts: 2.4K, Visits: 23K
Hi Larry,



I tested you sample and can confirm your findings. Using a dataset it took 3.5 seconds and using a BBS it took 14.4 seconds.



I review your code and could not find anything wrong. It is understandable that the BBS is doing more work than the plain dataset, but the difference is huge and in this case very noticeable.



I know that there are many changes that will be introduce to the BO and BBS for future versions of SF so I hope Trent can test this and find a solution for the BBS other than just use the plain dataset which may as well fit the bill in your case.


Edhy Rijo

Larry Caylor
Larry Caylor
StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)
Group: Awaiting Activation
Posts: 592, Visits: 3.7K
I profiled my sample application using ANTS 5.0 and found that the performance bottleneck is in the SF SharedDataTableCollection.AddBusinessObjectTable method. The application spends most of it's time trying to determine if the _BOsUsingTable collection already contains the business object. This isn't too noticeable with a small number of records but the time increases dramatically as the number of records increases. I was able to refactor AddBusinessObjectTable to reduce the time it takes to render approximately 20,000 records on my development PC by 35%. (See attached code listing). While 35% is an improvement I feel there is a real need for a lighter weight read-only business object that can act as a datasource for reporting tools. I've hand coded a "report binding object" that returns a light weight read-only object for each row in the standard SF BO that doesn't use a shared data table, but it introduces a lot of extra "Property" coding and maintenance that could be handled by the BO mapper if SF had a read-only object. Are there any plans for such an object in a future version of SF or is there some other way to improve performance with reporting tools such as RSS?
Attachments
AddBusinessObjectTable.doc (130 views, 31.00 KB)
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search