Compare performance of a Report Definition and Obj-Browse
I would just like to compare the performance of a report definition having multiple class join conditions and an activity with multiple Obj-Browse on multiple class with same conditions as in RD class join.
How does a Obj-Browse usually work.. For ex: if i execute 4 Obj-Browse statements in an activity does that result in 4 database hits or is it a bulk operation?
I think both work the same way (not sure which one it is). It would be interesting to know what is this way (individual hits or 1-time); maybe someone can shed light on that.
On the other hand, the report definition will perform better because it has the ability to read from optimized properties without having to go through the BLOB. An activity on the other hand will read from the BLOB stream when it wants to access properties of that object that you browsed.
Obj-Browse can also not filter on properties which are not optimized. But if you select a property that is not optimized, it will read the entire BLOB. Report Definition does not read the entire BLOB but uses UDFs to return scalar properties back if you reference unoptimized properties.
Since Report Definitions support a wider range of SQL syntax, there is an opportunity to do everything in SQL rather than post process by firing multiple queries. This also means that the developer using the report definition is also well versed with joins and other SQL syntax.