How to Improve Dashboard Performance When Reports Load Slowly?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 hours ago
Hi Community,
We are experiencing slowness when loading dashboards in ServiceNow. The issue seems to occur because some reports on the dashboard take a long time to load. When such a dashboard is set as the homepage, users are unable to open other modules until the dashboard fully loads.
I have two questions:
How can we optimize these reports to improve dashboard performance? Are there best practices for report design or data retrieval that can help reduce load time?
Can we use cache.do to clear the cache frequently? Will this help in improving dashboard responsiveness, or is there a better approach for managing cache?
Any guidance, best practices, or alternative solutions would be greatly appreciated.
Thanks in advance!
- Labels:
-
Performance Analytics
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 hours ago
Hi @VaddiR
Reports provide the current status and performance based on the underlying table and data they are built on. The load time of a report depends on the table, the number of conditions, and the type of report.
-
Sometimes, reports with many conditions or built on large/base tables (like core tables) may take longer to load.
-
Conversely, reports with few conditions or built on smaller tables are usually faster.
I don’t think we can do much to drastically improve performance, but if you want to optimize:
-
Reassess your reports and remove unused or unnecessary ones.
-
Use filters and conditions smartly to reduce load on large tables.
Solved: Slow loading of the dashboard - ServiceNow Community
How to improve dashboard loading performance - ServiceNow Community
Boosting ServiceNow Performance: Troubleshooting Slow Reports and Dashboards
Troubleshooting slow instance performance - Support and Troubleshooting
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.
Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/atul_grover_lng [ Connect for 1-1 Session]
****************************************************************************************************************
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 hours ago
Hi Here's an approach to optimize your reports and improve dashboard performance, i hope this can help.
Navigate to System Diagnostics > Stats > Slow Queries
Check System Diagnostics > Sessions > Active Transactions during dashboard load
Enable transaction quotas to identify problematic reports
Use the Report Performance module to see execution times
2. Report Design Best PracticesData Retrieval Optimization:
Limit the date range: Use relative date filters (last 30 days instead of all time)
Reduce record count: Add filters to limit data retrieved
Example: Instead of "All incidents", use "Incidents from last 90 days where state != Closed"
Use indexed fields in filters: Priority, State, Assignment Group are typically indexed
Avoid OR conditions: Multiple OR conditions prevent index usage
Remove unnecessary fields from the report definition
Report Configuration:
Limit grouping levels: Multiple group-by operations are expensive
Use aggregation wisely: COUNT is faster than DISTINCT COUNT
Avoid complex calculations in report fields when possible
Set reasonable refresh intervals: Don't use real-time refresh unless necessary
Implement drill-down instead of showing all details upfront
3. Database Query Optimizationjavascript
// BAD - Unindexed query with OR conditions
var gr = new GlideRecord('incident');
gr.addQuery('category', 'Hardware');
gr.addOrCondition('category', 'Software');
gr.addOrCondition('category', 'Network');
gr.query();
// GOOD - Use encoded query or IN operator
var gr = new GlideRecord('incident');
gr.addQuery('category', 'IN', 'Hardware,Software,Network');
gr.query();
4. Use Report Scheduled Jobs
For data-intensive reports:
Navigate to Reports > Administration > Scheduled Reports
Pre-generate reports during off-peak hours
Store results and display cached version
This is especially useful for dashboards used as homepage
5. Dashboard-Specific OptimizationCanvas vs. Legacy Dashboards:
Performance Analytics Dashboards (Canvas) generally perform better
Consider migrating from Homepage dashboards to Performance Analytics
Canvas dashboards support lazy loading and better caching
Dashboard Configuration:
Reduce widgets per dashboard: Maximum 6-8 widgets recommended
Use list widgets sparingly: Lists are more expensive than charts
Enable lazy loading: Widgets load as they come into view
Set appropriate refresh intervals: 5-10 minutes instead of real-time
Remove interactive filters if not essential
6. Technical OptimizationsAdd Database Indexes:
// If you frequently filter by custom fields, add indexes
// Navigate to: System Definition > Tables & Columns
// Select the table, find the column, check "Create index"Use Aggregate Tables:
For historical trending, create aggregate tables
Pre-calculate metrics during off-peak hours
Query aggregates instead of raw data
Implement Data Archiving:
Archive old closed records to improve query performance
Use ServiceNow's Data Archiving feature for large tables
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
an hour ago
Is it a good practice to use cache.do?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
an hour ago
@VaddiR yes, we can do.
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.
Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/atul_grover_lng [ Connect for 1-1 Session]
****************************************************************************************************************
