Resource Governor, Monitoring and Tracing On SQL Server
Outline Resource Governor Why use RG? Resource pooling Monitoring Activity monitor Underlying DMVs Tracing How tracing works
What is Resource Governor? New feature in SQL Server 2008 Helps you to manage SQL Server workload and system resource consumption Enables placing limits on CPU or memory usage per incoming application request. Only available in Enterprise or Developer editions (incl. all evaluation versions)
What is Resource Governor? SQL Server 2008 provides Resource Governor, a feature than you can use to manage SQL Server workload and system resource consumption. Resource Governor enables you to specify limits on the amount of CPU and memory that incoming application requests can use.
Reasons Behind Resource Governor To place limits on resources: Threads CPU(s) Memory To have more control over database server. To monitor run-away queries.
Workload Groups & Classifier Ability to differentiate workloads (login, reports, calculations) with importance labels (low, medium, high). Limits on: Max memory/cpu and timeouts Max DOP, max group requests Classifier - user-defined function for implementing classification rules.
Resource Pools Resource pool: A virtual subset of physical database engine resources. You can think of a pool as a virtual SQL Server instance inside of a SQL Server instance. Provides controls to specify Min/Max Memory % Min/Max CPU % Max DOP Workloads are mapped to resource pools N:1.
Resource Governor Schema
Resource Governor Commands Enabling or disabling Resource Governor Resource Pool and Workload Group creation
Classifier Function Example
Monitoring Resource Governor Metadata CVs: sys.resource_governor_resource_pools sys.resource_governor_workload_groups sys.resource_governor_configuration Running value DMVs: sys.dm_resource_governor_resource_pools sys.dm_resource_governor_workload_groups
Activity Monitor
Activity Monitor Overview Active User Tasks Shows information for active user connections to the instance. You can also run profiler from here for a particular process. Resource Waits Data File I/O Recent Expensive Queries
Activity Monitor How to open AM? CTRL+ALT+A. Right-click the instance name, and then select Activity Monitor. On the SQL Server Management Studio standard toolbar, click Activity Monitor.
Activity Monitor Underlying DMV sys.dm_os_performance_counters sys.dm_exec_sessions sys.dm_exec_requests sys.dm_os_wait_stats sys.dm_os_waiting_tasks sp_who2 [spid]
sp_who2
SQL Tracing Common usages: Workload analysis and replay Deadlocked/blocked process analysis
SQL Tracing Client-side trace using SQL Profiler events are streamed from the server, over the network, to the Profiler Server-side trace using a number of SQL Trace system stored procedures
SQL Trace Terminology The following terms describe the key concepts of SQL Trace. Event The occurrence of an action within an instance of the Microsoft SQL Server Database Engine. Data column An attribute of an event. Event class A type of event that can be traced. The event class contains all of the data columns that can be reported by an event. Event category A group of related event classes. Trace (noun) A collection of events and data returned by the Database Engine. Trace (verb) To collect and monitor events in an instance of SQL Server.
SQL Trace Terminology Trace definition A collection of event classes, data columns and filters that identify the types of events to be collected during a trace. Filter Criteria that limit the events that are collected in a trace. Trace file A file created when a trace is saved. Template In SQL Server Profiler, a file that defines the event classes and data columns to be collected in a trace. Trace table In SQL Server Profiler, a table that is created when a trace is saved to a table.
SQL Trace Architecture
SQL Server Profiler
Introducing SQL Server Profiler Microsoft SQL Server Profiler is a graphical user interface to SQL You can monitor a production environment to see which stored procedures are affecting performance by executing too slowly. To run SQL Server Profiler, on the Start menu, point to All Programs, Microsoft SQL Server 2008, Performance Tools, and then click SQL Server Profiler.
Using SQL Trace through T-SQL Create a trace by using sp_trace_create. Add events with sp_trace_setevent. (Optional) Set a filter with sp_trace_setfilter. Start the trace with sp_trace_setstatus. Stop the trace with sp_trace_setstatus. Close the trace with sp_trace_setstatus.