Top 12 SQL Server Performance Issues that Require Real-Time Monitoring

by Alon Vodovoz | December 4, 2018

Monitoring Microsoft SQL Server performance is a challenging task, particularly since the application’s tool set is insufficient to meet today’s rapidly-evolving hybrid environments and real-time performance monitoring requirements.

To diagnose any CPU, memory or I/O issue in your SQL server, you need an effective monitoring solution. The solution must first gather all relevant metrics, and then provide a set of accurate, reliable and configurable alerts to immediately notify you of problems after they arise. Problems can include job failure, database/server property deviations , sustained spikes in resource usage, or abnormal trends.

So, why do we require extensive monitoring? The reason is to ensure effective capacity planning. If we’re unaware of a server’s resource limits and can’t monitor current resource usage, then we won’t know when to increase capacity until it’s too late — i.e. when one of the resources “runs out.”

Below are the top 12 Microsoft SQL Server performance issues. A real-time solution that monitors and identifies these issues and sends out alerts will preserve your resources and ensure high-level server performance.

1) Query status

When your application starts experiencing a slowdown, one of the first things to check is the status of queries. For example, is there a query blocking other queries, are there too long-running queries, are there parallel queries, or is a query open and running all the time?  A real-time monitoring solution that quickly detects the status of the application’s queries is essential for ensuring high performance.

2)  Query data

Queries use excessive amounts of  processor time, memory and disk space when missing indexes or complex/inefficient SQL codes are present. A real-time monitoring solution that obtains detailed data for each query resource, code, behavior, and execution plan  can identify the source of an application slowdown and improve performance.

3)  Host server

A solution that monitors your SQL server must also monitor the host server running the SQL application. By monitoring various aspects of the host server — e.g. process load, antivirus scans, network problems, disk usage, service status, and SQL connection time — the solution ensures high server and SQL performance.

4)  SQL requests

Applications can open numerous SQL requests including:

  • New application code that runs in a loop and subsequently carries out numerous query executions in a short period
  • DDoS attack on a website page that queries data
  • Multiple sessions that are opened against the SQL application
  • Applications that don’t close database sessions

Failure to properly monitor these and other SQL requests will lead to database denial of service (e.g. pre-login handshake, timeout), slowdowns, and disk space problems. A real-time monitoring solution that can successfully manage such requests will ensure quality performance.

5)  Execution plan compilation

The presence of complex SQL codes in a query, statistical updates, large numbers of table key changes, or complex inline queries can lead to long and repeated execution plan compilation. In these cases, the server must wait several minutes  for the compilation to be completed before it starts running, which lowers performance. A real-time solution that monitors these instances will eliminate waiting time and improve performance.

6)   Random query execution

When your engineering teams create multiple indexes on tables or complex queries, the SQL engine may randomly carry out  incorrect query executions, thereby lowering application response time. A real-time monitoring solution that can identify random  query executions during production will ensure faster response time and better performance.

7)   Disk I/O

Disks suffering from high traffic due to either large data queries, antivirus scans, or file copies/deletions, or a server running too many programs will slow down application response time. A real-time solution that monitors disk I/O ensures high performance.

8)  Software services

ERP, business and other software types include a range of services that need to run continuously for the application to work. Competition from updates, antiviruses and other services subject to human error can lead to service halts and application downtime. A real-time solution that monitors and identifies these services and sends alerts in the event of error is crucial to keep critical software running.

9)  Database backup

Database backup is one your SQL server’s most important tasks, since it ensures database recovery and minimizes data loss in the event of failure. In the following instances, however, database backup plans are inefficient and as a result, lower performance:

  • the backup runs during working hours
  • the backup synchronizes all database backups
  • the backup uses cloud backup tools that lock the database

A real-time solution that monitors database backups ensures rapid application response time, thereby preventing time and financial loss for your business.

10)  Errors and exceptions

SQL errors and exceptions affect the performance of various business processes including:

  • database server restoration
  • database credential changes
  • SQL code
  • duplicate keys

A real-time monitoring solution that identifies and eliminates SQL errors and exceptions ensures that business processes perform at a high level all the time.

11)  Jobs

Applications run various types of jobs, including backups, statistical updates, index running and data aggregation. A real-time solution that monitors jobs to ensure that they run smoothly and on time leads to high application performance.

12)  Server activity

SQL server performance is affected by any activity taking place on the server including:

  • new/removed database
  • service stoppage
  • software installations/updates
  • server restart
  • network card changes

By letting you know what’s happening in your server, a real-time monitoring solution provides you with greater control and ensures high performance.

Read how to do this here