Solutions

  • Products
  • Use Cases
  • Industries
  • EBOOK
  • Making it #EasyForEmployees
  • A guide with best practices for transforming the employee service experience.
  • WHITE PAPER
  • Modernizing government via ITSM
  • A research doc about government agencies’ digital transformation challenges.

Platform

  • REPORT
  • Gartner names ServiceNow a leader
  • 2018 Magic Quadrant for Enterprise High-Productivity Application PaaS.

Customers

  • CUSTOMER STORY
  • General Mills transforms HR
  • Global employee service experience shows entire corporation how it’s done.

Explore

  • PERSPECTIVE
  • Change starts with people
  • Successful companies invest in helping employees through major transitions.

Monthly instance maintenance

Don’t let slow queries or transient data bog down your instance.

  • Track your table growth to ensure they don’t get too large.
  • Remove unnecessary records when the data is no longer needed.
  • Review your slow queries to see if you need to index or change frequent queries.

There are broadly two types of data stored in your ServiceNow instance:

  • Persistent data that you want to retain, such as a task or user info
  • Transient data that needs to be cleared after a given time frame, such as log information or staging data for imports or integrations

It’s normal to see persistent data growth over time. But when you see increased table sizes along with a decreased response time, you may have list definitions or glide record queries that need to be refactored or supported by appropriate indexing so you can accommodate the data growth.

Or your data sets may be growing because there’s an increase in response times for end users and an increase in execution time for maintenance tasks such as cloning, backup, and restore. If that’s the case, it’s important to monitor your table growth on a monthly basis. If you created a spreadsheet to track your top 20 request response times, you can extend it to track the number of rows rendering in your tables, as well as your slow queries, so you can track their improvement over time.

Monitor your table growth rates

When you check your table growth, you’ll look for two things:

  • Dramatic changes in size from month to month
  • The total number of records in your tables

Figure 7: A table list showing a total of four tables

  1. Navigate to System Definition.
  2. Select Dictionary.                                                     
  3. Your list of tables appears on the screen.
  4. Filter the table information typing u_ in the Table text box. This will show you all of the user‑created tables.
  5. Continue filtering the table by typing =NULL under Column name. This shows you all your customized tables (those that aren’t out of the box)—the tables you need to check for growth.
  6. To see the total number of records in a table, type .list in the navigation field at the top left of the screen. (See Figure 7.)  
  7. Look for a dramatic change between the previous month and this month. If you see this, you may need to investigate why the spike occurred.
  8. Check the total records.

If the total number of records in your tables is over 50K, you may need to complete one of these tasks or a combination of them:

  • Index the fields used in filters or other queries – To determine if you need to index fields, review the Slow Queries log. If you discover that you need to index, contact ServiceNow for support.
  • Request a table rotation from ServiceNow technical support – For more information, read the next section and our product page on table rotation.
  • Extend your tables – For more information, read our product page explaining table extension.
  • Clean them by purging rows – See the next section.

Clean your tables

When you look at your transient data tables, make sure you see evidence that a sensible data retention policy is being enforced. If a record is a throwaway—there’s no need to retain it once it has been processed. Set up a table cleaner to remove the row in a timely fashion.

With the advent of solid state drives, the table cleaner can comfortably delete approximately one million rows from a table on a daily basis and keep up.

When you need to purge more than one million rows at a time, you may need to request a table rotation. Table rotation is part of the Now Platform functionality and, while it’s open to users with the admin role, we recommend sending a ticket to the ServiceNow technical support team to investigate your individual requirements.

To see the number of rows you need to purge:

  1. Type incident.list in the navigation field, or type https://.service‑now.com/ incident_list.do into your browser’s address bar.
  2. A count of the records will display.
  3. You may want to amend your show x records preference to 10 or 20 to speed up the list rendering time.
  1. Navigate to System Diagnostics > Stats > Slow Queries to see your Slow Queries log. The platform records any SQL statement that takes more than 100 ms to complete. The Slow Queries log groups these transactions into similar patterns, providing you with an example set of parameters.
  2. Type u_ in the Example text box.

Heads up! If you discover that you need to purge more than one million records, submit a ticket to the ServiceNow tech support team to handle the purge. Purging them yourself could negatively impact your instance.

Review the Slow Queries log

The Slow Queries log aggregates the data for similar queries. You can use this data to evaluate your need for new indexes, changes to existing indexes, or changes to frequent queries.

Not every slow query is a concern—you can expect to have a few. The slow queries that you need to be concerned with are the user created tables, those that begin with “u_.”

Figure 8: A Slow Queries log

  1. Navigate to System Diagnostics > Stats > Slow Queries to see your Slow Queries log. The platform records any SQL statement that takes more than 100 ms to complete. The Slow Queries log groups these transactions into similar patterns, providing you with an example set of parameters.
  2. Type u_ in the Example text box.

Figure 9: A Slow Query log showing the Example text box

The slow query log records the slow queries’ patterns since the beginning of time (or since the last time sys_query_pattern was truncated). You may find the results more meaningful by applying a filter to show only patterns that were first sighted in the last month and that occurred more than 100 times.

If you click through to an individual query pattern record, you’ll see an example URL where the query was generated, the first and last sighting, the number of executions, and the average execution time.

The stack trace of the thread executing the query also displays. From here:

  1. Cross‑reference which element on the screen requested the information.
  2. Once you know this, you can review the gauge or list that made the call and verify whether it would benefit from refactoring or supporting with an index. Many times, you can significantly reduce the execution time by simply adding active=1 to a query.

Tools and resources

Explore additional phases

Plan

You want to be sure everything is in place for a smooth, successful deployment.

Deploy

You want to be sure you’re following best practices during implementation.

Optimize

You’re up and running and want to get the most from your investment.

Extend

You’re ready to extend ServiceNow into other areas of your enterprise.

Thank You

Thank you for submitting your request. A ServiceNow representative will be in contact within 48 hours.

form close button

Contact Us

I would like to hear about upcoming events, products and services from ServiceNow. I understand I can unsubscribe any time.

  • By submitting this form, I confirm that I have read and agree to the Privacy Statement.