The Challenge of Providing Peak SQL Server Performance

by May 6, 2020

Of the many responsibilities thrust upon database administrators, attempting to provide peak performance is one that can attract a lot of unwanted attention. Whereas taking backups and checking security settings are vitally important, they are activities that do not impact the average database user. That cannot be said for database performance.

Slow queries or unresponsive applications are not tolerated for long by the user community. Phone calls will be made and soon management becomes involved, putting pressure on the database team to find the issues that are slowing down their systems. If the performance problems occur at the wrong time, such as during a period of increased usage, an enterprise can lose business as customers become impatient and move to other options.

Equally problematic are performance issues with internal systems that provide business intelligence or are used for mission-critical applications that are not customer-facing. The failure of these systems to perform adequately can result in the inability to make decisions that impact the entire organization. They can also cause the database team to experience sleepless nights trying to figure out what is going on with their systems.

What Impacts SQL Server Performance?

SQL Server is a mature database solution that has been in use for many years. Over time, database professionals have faced performance issues that can seem to appear out of nowhere. Systems that were running fine yesterday suddenly bog down and lead to complaints from frustrated users. Performance issues are not the kind of thing that DBAs can work on in their spare time. The problem needs to be identified and fixed as soon as possible.

Luckily, the collected experiences of database teams working with SQL Server provides DBAs with logical and tested starting points when faced with underperforming systems. These potential issues should be among the first aspects of the affected SQL Servers that come under review.

  • Missing indexes – Evidence of missing indexes can be seen in disk performance problems and an increased incidence of deadlocks. Care needs to be taken when adding indexes, as sometimes all that is needed is an extra column added to the column list. You don’t want to create duplicate indexes as this can cause different performance problems through additional writes, updates, and deletions.

  • Poor index design – Slow running queries and those that have a high execution plan cost can be the result of poorly designed indexes.

  • Poorly designed schemas – One of the telltale signs of poor schema design is excessive I/O requests during query execution. The fix involves finding and optimizing the offending table.

  • Inadequate buffer pool size – A small buffer pool forces SQL Server to resort to using the dish system to store recently read and written pages. Additional memory can be used to increase the size of the buffer pool.

  • Lack of memory – Insufficient memory can cripple the performance of your SQL Servers. It is recommended that you max out on the amount of memory your version of SQL Server can handle. More memory allows SQL Server to cache more data and reduces disk utilization.

These are just some of the causes of performance issues with your SQL Server. Complex environments may make it difficult to pinpoint the underlying reason for an unresponsive database.

Finding the Issues with Your SQL Servers

IDERA’s SQL Doctor can help identify and resolve performance issues that plague your SQL Server databases. The application can help you tune physical, virtual, and cloud instances of SQL Server to keep them running efficiently. You can view summaries of system health for the entire SQL Server environment or a particular instance. Performance optimization recommendations are provided in a prioritized list displayed by the tool. Executable SQL optimization scripts can be generated by SQL Doctor to address specific problems.

Regularly scheduled checkups performed with SQL Doctor can keep you advised of potential problems before they impact server performance. You can schedule daily or weekly analysis of your systems to keep them in great shape. Analysis can be as granular as you wish using any combination of categories available for health checks. Some aspects that can be investigated include blocking processes, database configuration, deadlocks, the disk system, and memory usage. You can focus the analysis on specific databases or applications and reduce noise from unnecessary databases.

Every analysis report is stored for historical analysis and review and provides the ability to drill down to uncover detailed information. If your SQL Servers are not performing as you think they should be, give SQL Doctor a shot at diagnosing the problem. It’s sure to improve your standing with the user community.