Hi here a list of check that you can follow to optimise dashboard and reporting hope that can help.
In generally it's important that you will display data with same interval of update and do not update in automatically the reports and dashboard
1) Reduce the Number of Reports on the Dashboard
ServiceNow recommends:
•< 10 reports per dashboard tab
•Use tabs to split dashboards logically
e.g., In Progress | Compliance | Performance
This reduces simultaneous rendering.
⸻
2) Change Reports to Use Scheduled Data Instead of Live Data
The most important optimization:
If your reports use Performance Analytics (PA):
Switch from Live query to Indicator score (preprocessed data).
How:
•Open the report
•Change data source from Table to PA Indicator / PA Breakdown
•Use scheduled data collection
Result:
Reports load instantly because they no longer run GlideRecord on the fly.
⸻
3) Optimize Report Conditions (Avoid Heavy Queries)
Avoid:
•Wildcard searches (CONTAINS, STARTSWITH)
•Queries on long text fields
•Querying the whole table (add date filters!)
•“ORDER BY” on large datasets
•Joins on tasks via script fields
Do:
•Add a date range (last 30 days, last 3 months, etc.)
•Add indexed fields to the filter (explained below)
•Keep conditions simple
⸻
4) Add Indexes to Improve Report Queries
Look in:
System Logs → Stats → Slow Query Logs
Find slow report queries and add an index:
System Definition → Indexes → New
Good candidates:
•sys_created_on
•sys_updated_on
•state
•active
•assignment_group
•assigned_to
Creating the right index often improves response from 10 seconds → < 0.5 seconds.
⸻
5) Use Performance Analytics Widgets Instead of Standard Reports
PA widgets:
•Are cached
•Load faster
•Support breakdowns, targets, forecasts
•Allow prefiltered views
If you currently have:
•List reports
•Bar/Line/Pie reports
•Score trend reports
You should convert them to PA visualizations.
⸻
6) Enable Caching for Dashboards
Go to:
Performance Analytics → Dashboard Cache
•Enable Data Cache
•Set refresh to every 5–15 minutes
•Works extremely well for static KPIs and trending reports
This reduces dashboard load time from seconds → milliseconds.
⸻
7) Avoid “List” Reports With >500 Rows
Large list reports are the main reason dashboards freeze.
Replace them with:
•PA widgets
•Count / Distribution charts
•Pivot tables
•Reports with a link like “View list” instead of embedding the whole list
⸻
😎 Convert Dashboards to “Next Experience / UI Builder”
UI16 Dashboards render slower.
Next Experience Dashboards (UI Builder) provide:
•Better caching
•Faster rendering engine
•More efficient widget loading
•Lazy loading (reports only load when visible)
⸻
9) Enable Lazy Loading for Widgets (UI Builder Feature)
If your dashboard is in UI Builder:
Turn on:
•Lazy Load
•Client-side caching
This prevents all widgets from loading at once.
⸻
10) Check for Slow Scripts Embedded in Reports
Custom script-based report sources slow everything:
•Scripted REST sources
•Scripted report data sources
•Business rules running on query
•ACLs evaluating scripts
Check:
System Logs → All → Slow Scripts
Refactor or remove heavy scripts.
⸻
11) Use Report Caching (Platform Feature)
ServiceNow caches report data automatically when enabled.
Check:
System Properties → glide.ui.report.chart.cache.enabled = true
If disabled → reports run new queries on every dashboard load.
⸻
12) Turn Off Automatic Refresh for Reports
If your dashboard refreshes every minute, every report is constantly querying the database.
Set refresh to:
•5 minutes
•10 minutes
•Or manual refresh
Especially important for multi-tab dashboards.
⸻
13) Profile the Dashboard Using ‘Diagnostics → Page Inspector’
Go to:
•System Diagnostics → Diagnostics Tools → Page Inspector
•Load the dashboard
Look for:
•slow transactions
•slow widgets
•heavy queries
•network bottlenecks
ServiceNow uses this internally to optimize dashboards.