SQL Server Engine 当前使用的configuration,称作 In-memory configuration,使用DMV:sys.dm_resource_governor_XXX查看;如果需要对Resource Governor Configuration进行更新,需要分两步。

Step1,更新Stored configuration。对Resource Governor组件的update,实际上修改的是Stored Configuration,并没有影响到SQL Server Engine 当前使用的In-Memory configuration。使用系统表sys.resource_governor_XXX查看Stored configuration的详细信息。

step2,更新Configuration,使用 ALTER RESOURCE GOVERNOR RECONFIGURE; 将SQL Server Engine的In-Memory configuration更新为 Stored Configuration,参考ALTER RESOURCE GOVERNOR (Transact-SQL)

一,查看 Resource Governor metadata

1,查看Resource Pool

sys.dm_resource_governor_resource_pools shows the in-memory configuration.To see the stored configuration metadata, use the sys.resource_governor_resource_pools catalog view.

select rgrp.pool_id,
    rgrp.name,
    rgrp.min_cpu_percent,
    rgrp.max_cpu_percent,
    rgrp.cap_cpu_percent,

    rgrp.min_memory_percent,
    rgrp.max_memory_percent,
    rgrp.max_memory_kb,
    rgrp.target_memory_kb
from sys.dm_resource_governor_resource_pools rgrp

cap_cpu_percent: Hard cap on the CPU bandwidth that all requests in the resource pool will receive. Limits the maximum CPU bandwidth level to the specified level.

min_memory_percent:The current configuration for the guaranteed amount of memory for all requests in the resource pool when there is memory contention. This is not shared with other resource pools.

2,查看Workload Group

默认设置,request_max_memory_grant_percent=25,意味着,a single request能够使用的内存是有上限的,不能超过max_request_grant_memory_kb的限制

select rgwg.group_id,
    rgwg.name,
    rgwg.pool_id,
    rgwg.importance,
    rgwg.max_request_cpu_time_ms,
    rgwg.request_max_cpu_time_sec,

    rgwg.request_max_memory_grant_percent,
    rgwg.max_request_grant_memory_kb,

    rgwg.group_max_requests,
    rgwg.max_dop
from sys.dm_resource_governor_workload_groups rgwg

max_request_cpu_time_ms: Maximum CPU usage, in milliseconds, for a single request.This is a measured value, unlike request_max_cpu_time_sec, which is a configurable setting.

request_max_cpu_time_sec: Maximum CPU use limit, in seconds, for a single request.

request_max_memory_grant_percent: Maximum memory grant, as a percentage, for a single request.

max_request_grant_memory_kb: Maximum memory grant size, in kilobytes, of a single request since the statistics were reset.

group_max_requests: Maximum number of concurrent requests.

max_dop: Maximum degree of parallelism for the workload group. The default value, 0, uses global settings. Is not nullable.

importance: Current value for the relative importance of a request in this workload group. Available importance is Low,Medium,High, with Medium being the default.

3, 查看classifier function

通过 sys.dm_resource_governor_configuration

-- Get the in-memory configuration.
select
    object_schema_name(rgc.classifier_function_id) AS N'Active classifier UDF schema',
    rgc.classifier_function_id,
    o.name as  N'Active classifier UDF name' ,
    o.type,
    o.type_desc,
    rgc.is_enabled,
    sm.definition
from sys.resource_governor_configuration rgc
inner join sys.objects o
    on rgc.classifier_function_id=o.object_id
inner join sys.sql_modules sm
    on o.object_id=sm.object_id

Appendix Script

创建 Resource governor 的示例代码

use master

CREATE RESOURCE POOL rpLowReource_Percent_20
WITH
(
     MIN_CPU_PERCENT ,
     MAX_CPU_PERCENT ,
     CAP_CPU_PERCENT ,
     AFFINITY SCHEDULER = auto,
     MIN_MEMORY_PERCENT ,
     MAX_MEMORY_PERCENT
);
go

CREATE WORKLOAD GROUP wgLowResource_Percent_20
WITH
(
    IMPORTANCE = MEDIUM,
    REQUEST_MAX_MEMORY_GRANT_PERCENT,
    REQUEST_MAX_CPU_TIME_SEC,
    REQUEST_MEMORY_GRANT_TIMEOUT_SEC,
    MAX_DOP,
    GROUP_MAX_REQUESTS
)
using rpLowReource_Percent_20;
go

use master
go

CREATE FUNCTION dbo.rgClassifierFunction_LowResource_Percent_20()
RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN
    DECLARE @Workload_Group_Name AS sysname
      IF (SUSER_NAME() = 'USER_READONLY')
          SET @workload_group_name = 'wgLowResource_Percent_20'
    RETURN @workload_group_name
END;
GO

-- Register the classifier user-defined function and update in-memory configuration.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION=dbo.rgClassifierFunction_LowResource_Percent_20);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

参考doc:

sys.dm_resource_governor_resource_pools (Transact-SQL)

sys.dm_resource_governor_workload_groups (Transact-SQL)

sys.dm_resource_governor_configuration (Transact-SQL)

Resource Governor Related Dynamic Management Views (Transact-SQL)

Resource governor2:Configuration query的更多相关文章

  1. 解读ASP.NET 5 & MVC6系列(5):Configuration配置信息管理

    在前面的章节中,我们知道新版的MVC程序抛弃了原来的web.config文件机制,取而代替的是config.json,今天我们就来深入研究一下配置文件的相关内容. 基本用法 新版的配置信息机制在Mic ...

  2. 开发错误11:Configuration with name ‘default’ not found

    开发错误11:Configuration with name 'default' not found 今天在导入一个sdkdemoapp3.0项目时,发现project build.gradle 与m ...

  3. VS EF Error: Configuration Error extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider"

    错误截图: Configuration Error :<add extension=".edmx" type="System.Data.Entity.Design. ...

  4. asp.net core源码飘香:Configuration组件

    简介: 这是一个基础组件,是一个统一的配置模型,配置可以来源于配置文件(json文件,xml文件,ini文件),内存对象,命令行参数,系统的环境变量又或者是你自己扩展的配置源,该组件将各个配置源的数据 ...

  5. (转)Spring4.0:@Configuration

    从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或者多个被@Bean注解的方法,这些方法将会被AnnotationConfigAppli ...

  6. Android Studio3.1.2升级问题:Configuration 'compile' is obsolete and has been replaced with 'implementation'.

    每次升级Android Studio时,一般情况下Gradle版本的也会相应的升级,我之前Android Studio 3.0.1.Gradle 是4.1升级后为:Android Studio 3.1 ...

  7. spring4.0之二:@Configuration的使用

    从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplic ...

  8. VMware:Configuration file was created by a VMware product with more features than this version

    Few days ago,I opened the Genesys demo VM by VMware Server 1.0.4 and got an error like this: "C ...

  9. 转:spring4.0之二:@Configuration的使用

    从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplic ...

随机推荐

  1. cocoapods

    iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $gem sourc ...

  2. python使用pdkdf2加盐密码

    from werkzeug.security import generate_password_hash, check_password_hash pw = generate_password_has ...

  3. [转]Android Studio 里搭建自动化测试框架Robotium

    Android的自动化测试框架可选择的不多,后来选了Robotium(https://code.google.com/p/robotium/),它的语法及易用性挺像我们用在iOS里的KIF. 官方文档 ...

  4. jsp和mysql乱码

    jsp页面,mysql页面上的中文不显示为乱码,各个地方使用的编码(如UTF-8,GB18030,GBK等)的编码保持一致即可. 1. jsp页面的编码: <%@page language=&q ...

  5. 利用闭包实现多次ajax请求只执行最后一次

    点一个按钮,则向服务器请求资源,不作处理时,多次点击后会有很多个请求在等待.我们知道一般我们用ajax是异步请求,那么我们快速重复点击一个按钮得到的结果其实我们并不知道是哪次点击的结果可能是第一次可能 ...

  6. POI读取Excel常见问题

    最近在做一个将excel导入到报表中的功能,使用了POI来实现,发现POI使用有诸多不便之处,先记录下来,以后可能考虑使用Openxml. 1. 数值类型处理 通过POI取出的数值默认都是double ...

  7. UnderScore源代码阅读1

    读一下underscore源代码,用于自己学习,个人理解,如果有不对的地方希望指正,谢谢 我觉着阅读的顺序按照从整体到局部,从架构到细节较好. 1.整体架构 (function() {}.call(t ...

  8. ASP.NET Core 使用 Redis 和 Protobuf 进行 Session 缓存

    前言 上篇博文介绍了怎么样在 asp.net core 中使用中间件,以及如何自定义中间件.项目中刚好也用到了Redis,所以本篇就介绍下怎么样在 asp.net core 中使用 Redis 进行资 ...

  9. Web应用程序的自动化测试库-FluentAutomation

    FluentAutomation是流畅的自动化应用编程接口,支持Selenium和WatiN 连同它们所有的风格和驱动程序.自从Fluient支持Selenium,那就意味着你可以使用Selenium ...

  10. gulp es7配置文件

    http://sanwen.net/a/ybsfcoo.html /** * Created by udi on 2016/11/24. */ var gulp = require('gulp'); ...