- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 09-13-2019 10:00 AM
Before You Start
Review the Content Packs
Before creating something new, ensure that there is something out there that already meets your needs. Look at the ServiceNow Content Packs which are available for every ServiceNow product line. While they may not meet every business requirement (often due to customization), they will give you a solid starting point.
Read more about Out-of-the-box Performance Analytics Solutions.
Design for Analytics
When you add new tables and new fields or create a custom application, ensure that your customizations are designed to support analytics. This is a never-ending process as your process and analytics will evolve over time.
Read more on why it is important to build in analytics into your application.
Design
Persona Based Dashboards
Design dashboards that contain commonly needed information leverage tabs to group the reports together. Having multiple users leveraging the same dashboard allows you to learn from each other rather than everyone reinventing the wheel.
Important Content Goes "Above the Fold"
Dashboards only load what you can see. Important data should go at the top with less important data going lower on the page or on a different tab.
Scrolling is generally discouraged and instead put data on different tabs with meaningful labels
Read more on Responsive Dashboards.
Understand the Purpose
This dashboard will help <persona> accomplish <objective>
This report helps by identifying <some aspect> of the objective
The user is expected to take these types of actions based on this data. Choose the appropriate visualization to convey what is important. Different visualizations are used to highlight different types of information.
Here is a chart that can help:
Less Is More
Having fewer reports that are highly maintained allows users to find what they are looking for with less noise. Avoid creating endless varieties of the same basic report.
Building
Choose Clear and Concise Names
Choose a clear and concise name for your dashboards, reports, and filters. "Incidents" isn't a great name, "My Open Incidents" or "Incidents with SLAs due today" are better. When users search for a report, they only see the name and the type of report. Verbose is OK. You can always use an alternate chart title in the report to have a shorter name displayed
Report Sources
Use Report Sources to ensure consistent data sets and make it easy for report writers to get the data they are looking for.
Read more on the advantages of Report Sources and the documentation for Report Sources.
Dynamic Filters
Leverage dynamic filters to filter reports based on the logged-in user is or other dynamic values. Here are the basics on how users can use Dynamic Operators.
Administrators and developers can create new ones as well to meet your specific needs. Read the documentation on creating a dynamic option.
Interactive Filters
Use Interactive Filters to minimize the number of needed reports and encourage reuse. Make sure to set Reports to show when they have an Interactive Filter applied.
Read the documentation on Interactive Filters.
Use Drill Downs and Multiple Datasets
Increasing data density will allow for quicker access to data. The key information should be obvious on the first pass. Secondary questions should be answered with drill-downs.
Documentation on report drill-downs.
Documentation on using multiple data sets on reports.
Additional Group By
Adding additional group by fields allows the user to change the grouping and stacking on the dashboard. This can remove the need for duplicate reports when there is a primary attribute to group by and secondary ones that are nice to have but not always essential.
Adds this to reports:
Read the documentation on adding additional group bys.
Add Additional Content Blocks to Add Context and Help
Content blocks allow you to add virtually anything to a dashboard
Read the documentation on Content Blocks.
Read this post with some examples of various uses of content blocks.
Put Dashboards in Meaningful Dashboard Groups
Groups allow users to quickly find related dashboards.
Read the documentation on dashboard groups.
Set Descriptions
Set the description of the report to identify the intent:
Things to Avoid
Using Performance Analytics and Reporting on the Same Tab
This often creates an odd user experience because interactive filters do not apply to Performance Analytics and the on click behavior is different (Analytics Hub vs. List View or drill down).
Oversharing
While it is easy to share every report with all users, this leads to noise when users are looking for reports. When they can't find one, they just create a new one
Read the documentation on sharing dashboards.
Using a Group By in a List Report on Large Data Sets
Instead, use a bar chart with a drill down into the list view or group by none and sort by the desired column.
Hardcoding Dates
Instead of selecting specific dates, use the data conditions like "This Month" or "Last Quarter" to ensure that the same report consistently shows you what you need without having to update it.
Calculated Fields
Calculated fields are evaluated every time the record is viewed. Instead, use a field that is maintained via a BR when the data changes. Function fields are also an option as they do not have the performance impact of Calculated Fields.
Tuning
Review Report Stats
Review report_stats to identify long-running and frequently run reports which are good candidates for tuning.
Read the documentation on Report Stats.
Review Slow Queries
All queries that take more than a nominal amount of time are logged. Review this log to identify slow reports.
Read the documentation on Slow Query Log.
Optimize to Use Indexes
For large, complex, and/or frequently run reports, make sure you are leveraging indexed fields.
Examples
- When filtering task tables by state (not indexed), if all of the states are open, add active = true (active is indexed)
- Querying task but not filtering based on class
Review Index Suggestions
Index Suggestions can help you to identify where you may benefit from adding an index based on your workload (this included everything, not just reporting)
Read the documentation on Index Suggestions.
For more Performance Tuning information, check out this great article on the topic
Performance Best Practice for Efficient Queries.
- 10,127 Views
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Thanks Adam! This is very helpful. Could you also add some tips on tracking report/widget usage?
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hi Wei,
You can preveilege the Report Statistics(report_stats) Table.
Thanks,
Vivek
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Thank you Adam! We are putting together some governance for our users and this was a great reference/starting point for us.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
I would recommend checking out this K20 session as well, Performance Analytics and reporting at the scale of Walmart.