Hi All,
We have a rule which is iterated for all the users in the environment. This rule will provide the details on the users access and credentials for a monthly report.
With the present list of users, it consumes a long period of time to execute and can raise performance concerns.
This rule is called from process model and it is the broken into more contextual rules, however it still consumes around 45 secs to complete.
The rules uses foreach function to run through each user and provide around 10 properties for that user.
Can anyone suggest if there is a better way to manage performance or is the tradoff of running the rule once a month and the time taken still acceptable.
Thanks,
Himanshu
Discussion posts and replies are publicly visible
When you say "it can still raise performance concerns", who is concerned about the performance and why? 45 seconds IS a long time IF there is an end-user waiting for the response. But if the process is running unattended (e.g. 2am on a Sunday morning) then this is of little concern.
Yes this is the tradeoff I am also mentioning, however is there a better way to handle such cases even if there is no end-user impact?
Without actually looking at you implementation it's hard to tell if there are any optimisation opportunities...but from what you've told me you've already expended more money on discussing the problem than you can save by looking to reduce 45 seconds to any other number less than that! That is: I don't think it's particularly material, other than as an academic exercise.
To reduce the problem by 45 seconds, a 100% reduction in time it takes to run the report, would add up to 45 x 12, or 540 seconds, a net savings of 2700 seconds over 5 years, or 45 minutes.
Therefore, if you spend more than 45 minutes on this problem, it's physically impossible to save more time over the next five years than you've spent attempting to solve it.
A monthly report that takes 45 seconds for all your users is awesome.