Resource Governor DDL and System Views
You can use Resource Governor DDL commands, catalog views, and dynamic management views for all aspects of Resource Governor. In addition to new views that are specific to Resource Governor, existing system views have been modified to include information about Resource Governor. This topic summarizes the following statements and views:
DDL commands, including commands for workload groups, resource pools, and Resource Governor.
Resource Governor system views, including catalog and dynamic management views.
SQL Server system views that are updated to support Resource Governor.
SQL Server event class updates as well as new event classes to support Resource Governor.
DDL Statements
Resource Governor provides seven DDL commands that you can use to configure all aspects of a Resource Governor session. There are CREATE, ALTER, and DROP commands for workload groups and resource pools. There is also an ALTER RESOURCE GOVERNOR RECONFIGURE statement that applies configuration changes.
The key things to note about Resource Governor DDL commands are as follows:
The CREATE, ALTER, and DROP statements work on the stored metadata and are transactional. However, completion of these statements does not make the changes effective; you must execute the ALTER RESOURCE GOVERNOR RECONFIGURE statement to apply changes.
The preceding statements can be part of a transaction to prevent simultaneous modifications to the same configuration by multiple users. This is done by using BEGIN TRANSACTION and COMMIT TRANSACTION with the statements. Any locks held on a transaction are visible in sys.dm_tran_locks and the transaction can be stopped if necessary.
Note
Although not required, we strongly recommend that you use transactional syntax when using Resource Governor DDL statements. However, ALTER RESOURCE GOVERNOR DISABLE, ALTER RESOURCE GOVERNOR RECONFIGURE and ALTER RESOURCE GOVERNOR RESET STATISTICS cannot be part of a user transaction.
The ALTER…RECONFIGURE statement loads the metadata into memory and may fail. You cannot roll back the statement. If the statement fails, the changes to the metadata are not copied to memory. If the statement succeeds, the changes are effective. ALTER…RECONFIGURE is not transactional, and changes cannot be rolled back.
Resource Pool Commands
Use the commands described in the following table to configure resource pools.
DDL statement |
Description |
---|---|
Creates a resource pool. |
|
Changes the configuration of a resource pool. This statement writes the changes to the stored configuration metadata. After executing this statement, you must execute the ALTER RESOURCE GOVERNOR statement to write the metadata information to the in-memory configuration. |
|
Drops a resource pool. |
Resource Governor provides four parameters for configuring a resource pool. They are:
A minimum and maximum percentage for CPU use.
A minimum and maximum percentage for memory use.
Depending on the change that you make to a resource pool configuration there may be a transition period and known behaviors for handling active or waiting requests during this transition. For more information, see Resource Governor States.
Workload Group Commands
Use the commands described in the following table to configure workload groups.
DDL command |
Description |
---|---|
Creates a workload group and associates it with a resource pool. |
|
Changes the configuration of a workload group. This statement writes the changes to the stored configuration metadata. After executing this statement, you must execute the ALTER RESOURCE GOVERNOR statement to write the metadata information to the in-memory configuration. |
|
Drops a workload group. |
Resource Governor provides the following six parameters for configuring a workload group:
The maximum amount of memory for a request.
The maximum percentage of CPU to use for a request.
The resource time-out for a request.
The relative importance of a request.
The maximum number of requests for a workload group.
The resource pool that the workload group will be in.
Depending on the change that you make to a workload group configuration, there are known behaviors for handling active or waiting requests when changes are applied. For more information, see Resource Governor States.
Resource Governor Command
Use the command described in the following table to configure Resource Governor.
DDL command |
Description |
---|---|
Applies configuration changes specified with an ALTER command, enables or disables RESOURCE GOVERNOR, registers a classifier function, or resets statistics. |
The ALTER RESOURCE GOVERNOR statement is used to perform the following actions:
Applying the configuration changes that are specified when either ALTER WORKLOAD GROUP or ALTER RESOURCE POOL statements are issued.
Enabling or disabling Resource Governor. This is also used for applying configuration changes.
Registering a function for request classification.
Resetting statistics on all workload groups and resource pools.
Depending on the change that you make to a Resource Governor configuration, there are known behaviors for handling active or waiting requests when changes are applied. For more information, see Resource Governor States.
Resource Governor Views
The following catalog and dynamic management views are specific to Resource Governor.
Catalog Views
Resource Governor catalog views are described in the following table.
Name |
Description |
---|---|
Returns the stored Resource Governor state. |
|
Returns the stored resource pool configuration. Each row of the view determines the configuration of a pool. |
|
Returns the stored workload group configuration. |
Dynamic Management Views
Resource Governor dynamic management views are described in the following table.
Name |
Description |
---|---|
Returns workload group statistics and the current in-memory configuration of the workload group. |
|
Returns information about the current resource pool state, the current configuration of resource pools, and resource pool statistics. |
|
Returns a row that contains the current in-memory configuration state for Resource Governor. |
SQL Server Views
Several SQL Server system views have been updated and provide information about Resource Governor.
Dynamic Management Views
SQL Server dynamic management views are described in the following table.
Name |
Description |
---|---|
Returns information about the queries that have acquired a memory grant or that still require a memory grant to execute. Queries that do not have to wait on a memory grant will not appear in this view. The following columns are added for Resource Governor:
|
|
Returns the information about the current query-resource semaphore status. sys.dm_exec_query_resource_semaphores provides general query-execution memory status and allows you to determine whether the system can access enough memory. The following column is added for Resource Governor:
|
|
Returns one row per authenticated session on SQL Server. The following column is added for Resource Governor:
|
|
Returns information about each request that is executing within SQL Server. The following column is added for Resource Governor:
|
|
Returns a row for each query plan that is cached by SQL Server for faster query execution. The following column is added for Resource Governor:
|
|
Allocations that are internal to SQL Server use the SQL Server memory manager. The following columns are added for Resource Governor:
|
|
Returns information about the waits encountered by threads that are in execution. You can use this view to diagnose performance issues with SQL Server and also with specific queries and batches. |
SQL Server Event Class Reference
Several SQL Server event classes have been updated and new event classes have been added to support Resource Governor.
Name |
Description |
---|---|
This event class indicates that Resource Governor detects a query that exceeds the CPU threshold specified for REQUEST_MAX_CPU_TIME_SEC. |
|
This event class indicates when a LOGON trigger or Resource Governor classifier function starts executing. |
|
This event class indicates when a LOGON trigger or Resource Governor classifier function finishes executing. |