Form opening performance vs related lists
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-25-2023 04:14 PM
Hi Dev gurus,
I am working on a performance related issue in the project [pm_projejct] table that it seems if a project record in form view associates with many related lists that contains large number of records associations, the project record would not open during certain work hours on a week day in my Production instance.
For example, one closed project record has associated with
61 - Project Tasks
21 - Sub Projects
46 - Change Requests
315 - Resource Plans
98 - Cost Plans
1 - Baselines
11 - Stakeholders
44 - Time Worke
each tab is a related list definition in the form layout under 'default view', and this has caused performance issue that the project will not open and shows blank screen or page not found.
I have investigated a few work arounds including
1) Admin users can help extract it into pdf (since admin role can bypass a lots of ACLs who could open the record with a slight better performance)
2) Switch to a view that has less tab, like Business Case View that only shows 3 tabs, responding a bit faster
While the underneath display business rules, ACLs, and even onLoad client scripts are yet to be discovered, I am wondering if you have experienced anything similar in performance with excessive records associations under related lists and the approach to tackle the issue.
The performance issue in the organization I am working could be improved in many ways and without diving into complicated and radical changes which requires thorough tests like regression, I am thinking of a onLoad client script to peek the number of records associations, among the concept UI dialog below,
If you have any thoughts to the issue and perhaps the way you tacked it, it would be very helpful.
Thank you in advance.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-25-2023 06:19 PM
Hi, your second screenshot shows 13451 task_time_worked records associated with the project and I would suspect that this is the cause of the 'excessive subordinate record association' ?
As a first step I would remove the task_time_worked related list and see if this improves your performance?
If this is the cause then perhaps you need to evaluate the need for the related list to appear in this context.
I would think that the task time worked records have little value for BAU operations, as it would be pointless for a user to navigate through all of them in a related list context and the records are probably accessible via a time_card drill down, or you could consider creating a UI action to provide clickable link or a report.
If this is not the issue then you will need to consider each related list as issue could be ACL, reference qualifier, query business rule etc for any relationship and narrowing the cause would be my next step.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-30-2023 09:05 PM
Thanks Tony, sorry just realised your response. By temporarily removing the Task worked, it seems little improvement eg. without that related list: Response time(ms): 22265, Network: 923, Server: 17892, Browser: 3450 vs Response time(ms): 22140, Network: 505, Server: 17952, Browser: 3683
I was also thinking of an onLoad client script to switch to light weight form view but after prototype it has turned out not effective since the form load script executes spontaneously while the related lists are being loaded.
Another attempt was trying to hide the related lists, but this approach still needs onload client script which executes at a phase a bit too late.
By breaking individual records under each related list, it turns out some records taking longer than the others, 1) project tasks tab - 61 records: Response time(ms): 5652, Network: 444, Server: 3970, Browser: 1238
92.65(ms)/record
2) Sub Projects - 21 records: Response time(ms): 4779, Network: 285, Server: 3350, Browser: 1144
227.57(ms)/record
3) Change Requests tab - 46 records: Response time(ms): 8490, Network: 293, Server: 6658, Browser: 1539
184.5(ms)/record
4) Resource Plans [resource_plan] - 315 records: Response time(ms): 5807, Network: 281, Server: 3929, Browser: 1597
18.43(ms)/record
5) Cost Plans [cost_plan] tab - 98 records: Response time(ms): 7960, Network: 286, Server: 6134, Browser: 1540
81.22(ms)/record
6) Baselines [planned_task_baseline] tab - 1 record: Response time(ms): 4312, Network: 305, Server: 2868, Browser: 1139
4,312/record
7) Stakeholders [pm_m2m_project_stakeholder] tab - 11 records: Response time(ms): 4402, Network: 297, Server: 2818, Browser: 1287
46.63(ms)/record
8)Time Cards [time_card] tab - 112 records: Response time(ms): 5223, Network: 345, Server: 3682, Browser: 1196
46.63(ms)/record
9) Time Worked [task_time_worked] tab - 13,451 records : Response time(ms): 5574, Network: 293, Server: 3995, Browser: 1286
0.414(ms)/record
Therefore I agree with your suggestions of reviewing the underneath ACL, reference qualifier, query businesses etc.
Thanks for your insights! appreciated.