Introducing Resource Governor

Resource Governor is a new technology in SQL Server 2008 that enables you to manage SQL Server workload and resources by specifying limits on resource consumption by incoming requests. In the Resource Governor context, workload is a set of similarly sized queries or requests that can, and should be, treated as a single entity. This is not a requirement, but the more uniform the resource usage pattern of a workload is, the more benefit you are likely to derive from Resource Governor. Resource limits can be reconfigured in real time with minimal impact on workloads that are executing.

In an environment where multiple distinct workloads are present on the same server, Resource Governor enables you to differentiate these workloads and allocate shared resources as they are requested, based on the limits that you specify. These resources are CPU and memory.

Resource Governor is available only on the Enterprise, Developer, and Evaluation editions of SQL Server.

Resource Governor is designed to address the following types of resource issues which are commonly found in a database environment:

Run-away queries on the server. In this scenario a resource intensive query can take up most or all of the server resources.

Unpredictable workload execution. In this scenario concurrent applications on the same server have workloads of different size and type. For example, two data warehouse applications or a mix of OLTP and data warehouse applications. These applications are not isolated from each other and the resulting resource contention causes unpredictable workload execution.

Setting workload priority. In this scenario one workload is allowed to proceed faster than another or is guaranteed to complete if there is resource contention. Resource Governor enables you to assign a relative importance to workloads.

All of the preceding scenarios require the ability to differentiate workloads in some way. Resource Governor provides:

The ability to classify incoming connections and route their workloads to a specific group.

The ability to monitor resource usage for each workload in a group.

The ability to pool resources and set pool-specific limits on CPU usage and memory allocation. This prevents or minimizes the probability of run-away queries.

The ability to associate grouped workloads with a specific pool of resources.

OLTP workloads. Resource Governor can manage OLTP workloads but these types of queries, which are typically very short in duration, are not always on the CPU long enough to apply bandwidth controls. This may skew in the statistics returned for CPU usage %.