Question
Morgan Stanley
IN
Last activity: 19 Feb 2016 4:37 EST
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?
-
Likes (2)
Ramarao Bolisetti malika gupta -
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Accepted Solution
Pegasystems
IN
Each call to obj-browse is a separate database "SELECT" statement that will be executed. So if there are 4 obj-browse method calls in an activity, there are 4 trips to the database via JDBC.
Murex
LB
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.
Waiting to hear more on this topic.
Thanks,
Joe
-
Chinthani Kodikara
Pegasystems
IN
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.
-
Ramyhaa Selvaraj Kalyan Madicharla
Murex
LB
I read somewhere that we can use an obj-list followed by obj-filter to achieve the results of a conditional obj-browse when the properties are not optimized. Never tried it myself though.
And since the report definition does not read the entire BLOB even if we try to access non-optimized properties, then that makes it a better choice in terms of performance I believe?
Oh and what exactly do you mean by a wider range of SQL syntax? Do you mean the ability to do joins in the Data Access tab?
Thanks for your input Rajiv!
Pegasystems
IN
Quite a few things in terms of range of SQL syntax
- Joins (inner and outer)
- Sub queries (sub reports)
- Ranking
- SQL functions
- Aggregation (summary)
- Having filters
Murex
LB
I'm familiar with all except the SQL functions. Can you point as to where those are added?
Accepted Solution
Pegasystems
IN
Each call to obj-browse is a separate database "SELECT" statement that will be executed. So if there are 4 obj-browse method calls in an activity, there are 4 trips to the database via JDBC.