How to fix it

  1. Navigate to System Diagnostics > Stats > Slow Queries to identify the most expensive database queries running on your instance.
  2. Check System Definition > Business Rules and filter by Updated field for rules modified in the last 30 days.
  3. Open each recent Business Rule and search for while loops containing GlideRecord queries. This is the most common cause of performance issues.
  4. For any problematic Business Rules, either optimize the query with addEncodedQuery() or move the logic outside the loop. Consider using setLimit() to prevent runaway queries.
  5. Navigate to System Diagnostics > Stats > Table Stats and identify tables with high record counts (>100k) that appear in your slow queries.
  6. Go to System Definition > Tables and open the problematic table. Click the Database Indexes related list to review existing indexes.
  7. Create new indexes for frequently queried fields by clicking New in the Database Indexes section. Focus on fields used in WHERE clauses of your slow queries.
⚠️

Index creation can take several hours on large tables and may impact performance during creation. Schedule during maintenance windows.

  1. Check System Definition > Client Scripts for onChange scripts. Open browser Developer Tools and monitor Network tab while loading forms to identify excessive AJAX calls.
  2. Optimize Client Scripts by adding conditions to prevent unnecessary GlideAjax calls, or consolidate multiple calls into a single Script Include method.
  3. Navigate to System Scheduler > Scheduled Jobs and review jobs scheduled between 8 AM and 6 PM. Move resource-intensive jobs to off-peak hours.
  4. Review recent update sets in System Update Sets > Retrieved Update Sets for any new code that may contain inefficient queries or missing encoded query parameters.
💡

Monitor System Diagnostics > Stats > Slow Queries daily after implementing fixes to verify performance improvements and catch new issues early.