Monitor and Tune for Performance
Updated: October 28, 2015
Applies To: SQL Server 2016
The goal of monitoring databases is to assess how a server is performing. Effective monitoring involves taking periodic snapshots of current performance to isolate processes that are causing problems, and gathering data continuously over time to track performance trends.
Ongoing evaluation of the database performance helps you minimize response times and maximize throughput, yielding optimal performance. Efficient network traffic, disk I/O, and CPU usage are key to peak performance. You need to thoroughly analyze the application requirements, understand the logical and physical structure of the data, assess database usage, and negotiate tradeoffs between conflicting uses such as online transaction processing (OLTP) versus decision support.
Microsoft SQL Server and the Microsoft Windows operating system provide utilities that allow you to view the current condition of the database and to track performance as conditions change. There are a variety of tools and techniques that can be used to monitor Microsoft SQL Server. Understanding how to monitor SQL Server can help you:
Determine whether you can improve performance. For example, by monitoring the response times for frequently used queries, you can determine whether changes to the query or indexes on the tables are required.
Evaluate user activity. For example, by monitoring users trying to connect to an instance of SQL Server, you can determine whether security is set up adequately and test applications or development systems. For example, by monitoring SQL queries as they are executed, you can determine whether they are written correctly and producing the expected results.
Troubleshoot any problems or debug application components, such as stored procedures.
Monitoring is important because SQL Server provides a service in a dynamic environment. Changing conditions result in changing performance. In your evaluations, you can see performance changes as the number of users increases, user access and connection methods change, database contents grow, client applications change, data in the applications changes, queries become more complex, and network traffic rises. By using SQL Server tools to monitor performance, you can associate some changes in performance with changing conditions and complex queries. The following scenarios provide examples:
By monitoring the response times for frequently used queries, you can determine whether changes to the query or indexes on the tables where the queries execute are required.
By monitoring Transact-SQL queries as they are executed, you can determine whether the queries are written correctly and producing the expected results.
By monitoring users that try to connect to an instance of SQL Server, you can determine whether security is set up adequately and test applications or development systems.
Response time is the length of time required for the first row of the result set to be returned to the user in the form of visual confirmation that a query is being processed. Throughput is the total number of queries handled by the server during a specified period of time.
As the number of users increases, so does the competition for a server's resources, which in turn increases response time and decreases overall throughput.
Provides the necessary steps required to effectively monitor any component of SQL Server.
Lists the SQL Server monitoring and tuning tools.
Provides information about how to establish a performance baseline.
Describes how to isolate database performance problems.
Describes how to monitor and track server performance to identify bottlenecks.
Describes how to use SQL Server and Windows performance and activity monitoring tools.
Describes how to display and save execution plans to a file in XML format.
Describes how to display real-time statistics about query execution steps.
The Query Store automatically captures a history of queries, plans, and runtime statistics, and retains these for your review.
Provided special information about Memory-Optimized tables.
Provides advice on using the Query Store.