Though ServiceNow Platform is considered efficient and robust by its design, there are instances where high transaction volume leads to severe performance degradation. This document offers the top three platform tips to prevent such performance degradation of your Customer Service Management application. Tips captured over here are generic to ServiceNow Platform but are very much applicable to the Customer Service Management application.
Tip 1: Identify and improve slow queries
ServiceNow offers slow query logs to gain insight into how queries are affecting platform performance. Use slow query data to periodically evaluate the need for new indexes, changes to existing indexes, or changes to frequent queries.
You should create a new index in the following situations:
- The column is queried frequently.
- Referential integrity exists on the column.
- The column has a unique value, making it a candidate for a unique index.
ServiceNow's own Use a slow query log documentation covers the tuning and optimisation side in more detail.
Tip 2: Establish a data archival policy
The high volume of data may eventually cause performance issues by consuming system resources and slowing down queries and reports. ServiceNow has a “Data Archiving” plugin which moves data that is no longer necessary for immediate day-to-day access from primary tables into a set of archive tables. This plugin allows to setup flexible data archival rules for individual tables in ServiceNow. It is vital to establish data retention and archival policies for high volume Customer Service Management customers for optimal performance.
Tip 3: Monitor your integrations
A typical Customer Service Management implementation requires integration with multiple special-purpose external systems. Enterprise can take different approaches for integrating the applications - Point to Point integration, Integration using EAI Tools or Integration using ETL Tools, etc. Irrespective of the approach, it is vital to establish a monitoring mechanism to track the health of integration processes. A simple update can create considerable ongoing traffic between two systems and can ultimately impact performance for end-users. Many middleware solution providers offer to monitor solutions to keep a track of deployed integration processes. They offer dashboards to monitor running transactions, completed transactions, failed transactions, execution time, system load, etc.
Bonus tip: performance testing
Performance testing is a practice performed to determine how the system performs in terms of responsiveness and stability under a particular workload. Performance testing can identify bottlenecks in a system, establishes a performance benchmark, and determines compliance with performance goals and requirements. It may be performed prior to initial go-live, as part of an upgrade process, or to nail down a perceived performance issue. Performance testing is recommended if you have a highly customized code or a large transactional volume. If you are unsure whether your instance needs it, tell us what you are running and we will say so plainly.
Where to look next
The slow query log lives in the instance itself, under System Diagnostics > Stats > Slow Queries. The platform records any statement that takes longer than 100 ms, so that list is where an indexing conversation should start rather than with a guess.
Three write-ups from ServiceNow worth the time, all current:
