sql server 2008新特性:资源调控器

来源:csdn:http://blog.csdn.net/xiaoxu0123/archive/2011/02/10/6177265.aspx

资源调控器是sql server 2008新增中的功能,可以限制某些用户访问sql server所消耗的cpu、内存资源或是对某个库访问所所消耗的cpu、内存资源,可以在SQL Server 的 Enterprise Edition、Developer Edition 和 Evaluation Edition中使用。

配置资源调控器基本分为以下步骤:
1. 创建并配置一个资源调控器资源池,发生 CPU 争用时,该资源池将限制分配给资源池中的请求的最大平均 CPU 带宽。
2. 创建并配置一个使用该池的资源调控器工作负荷组。
3. 创建一个“分类器函数”,它是一个用户定义函数 (UDF),其返回值供资源调控器用来对会话进行分类,以便将它们路由到适当的工作负荷组。
4. 将分类器函数注册到资源调控器。
5. 将更改应用于资源调控器内存中配置。

本测试示例是限制某查询用户USER_READONLY限制cpu最大为10%.
示例代码(代码参考msdn联机文档):

--配置资源调控器.
BEGINTRAN
USEmaster;
--创建并配置一个资源调控器资源池,发生 CPU 争用时,
--该资源池将限制分配给资源池中的请求的最大平均 CPU 带宽 10%
CREATERESOURCE POOL pMAX_CPU_PERCENT_10
   WITH
(MAX_CPU_PERCENT =10);
GO
--创建并配置一个使用该池的资源调控器工作负荷组。
CREATEWORKLOAD GROUPgMAX_CPU_PERCENT_10
USING pMAX_CPU_PERCENT_10;
GO
--创建一个“分类器函数”,它是一个用户定义函数 (UDF),
--其返回值供资源调控器用来对会话进行分类,以便将它们路由到适当的工作负荷组
--本例是限制用户为:USER_READONLY所使用的cpu资源不超过10%
CREATEFUNCTIONdbo.rgclassifier_MAX_CPU() RETURNSsysname
WITHSCHEMABINDING
AS
BEGIN
   DECLARE@workload_group_nameASsysname
      IF(SUSER_NAME() ='USER_READONLY')
          SET@workload_group_name='gMAX_CPU_PERCENT_10'
    RETURN@workload_group_name
END;
GO

--将分类器函数rgclassifier_MAX_CPU注册到资源调控器
ALTERRESOURCE GOVERNOR WITH(CLASSIFIER_FUNCTION=dbo.rgclassifier_MAX_CPU);
COMMITTRAN;
GO

--将更改应用于资源调控器内存中配置ALTERRESOURCE GOVERNOR RECONFIGURE;
GO

--包含资源调控器的当前内存中配置状态的行
select * from sys.dm_resource_governor_configuration

--当前资源池状态、资源池的当前配置以及资源池统计信息的相关信息

select * from sys.dm_resource_governor_resource_pools


--工作负荷组统计信息和工作负荷组当前在内存中的配置

select*fromsys.dm_resource_governor_workload_groups

这样,资源资源调控器配置完成,下面进行一下测试
创建一个public帐号:

USEmaster
CREATELOGIN USER_READONLY WITHPASSWORD ='Nzperfect'
GO

我们用这个USER_READONLY帐号登陆sql server,

然后测试一下,执行下面的T-sql循环脚本

DECLARE@CNTINT
WHILE1=1
BEGIN
    SELECT@CNT=COUNT(*) FROMsys.tables
END

打开性能监视器,并添加资源调器资源池cpu使用计数器,如下多图:




在以USER_READONLY登陆执行T-sql脚本后,pMAX_CPU_PERCENT_10资源池占用cpu为50%如下图:

然后,我们以sa帐号登陆sql server ,同时也执行上面的T-sql循环脚本,再看性能监视器计数,如图:

由上图可以看到,gMAX_CPU_PERCENT_10所占用的cpu立即下降到5%左右,说明我们配置的配置资源调控器已生效。
这时,如果取消sa执行的T-sql循环,则结果如下:

由上面的测试说明,当系统资源够用时,USER_READONLY像正常情况一下,sql server不会限制其使用的cpu资源,但当存在资源竞争时,资源调控器将跟据配置的资源池及组信息自动调节,限制USER_READONLY使用的资源,以确保其它进程拥用更多的资源。

--测试结束,删除测试

USEmaster
GO
DROPWORKLOAD GROUPgMAX_CPU_PERCENT_10
GO
ALTERRESOURCE GOVERNOR RECONFIGURE;
GO
DROPRESOURCE POOL pMAX_CPU_PERCENT_10
GO
ALTERRESOURCE GOVERNOR RECONFIGURE;
GO
ALTERRESOURCE GOVERNOR WITH(CLASSIFIER_FUNCTION=null);
GO
ALTERRESOURCE GOVERNOR RECONFIGURE;
GO
DROPFUNCTION[dbo].[rgclassifier_MAX_CPU]
GO

posted on 2011-04-21 12:21 Fanr_Zh 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/Amaranthus/archive/2011/04/21/2023401.html

sql server 2008新特性:资源调控器相关推荐

  1. 一. SQL Server 2008 新特性概述

    前几天一直再学习ASP.NET MVC框架.这几天在研究EMC存储和F5交换机都是奢侈品啊,虽然在工作中大多是ORCLE,看到SQL SERVER 2K8有许多新特性决定学习学习,增加自己的市场竞争力 ...

  2. 译:SQL Server 2008 新特性(3/3)

    注:冉冉毅马译(原文),英文内容来源于微软网站. SQL Server 2008 新特性 (3/3) 3.智能 SQL Server 2008提供一个能满足你用户智能化需求的综合平台. 3.1.集成任 ...

  3. SQL Server 2008新特性之压缩备份(backup compression)

    背景 当我们升级.迁移或者重建数据库时,你是否为将一个大数据库文件(动不动上100GB)的传输而烦劳呢?当你在配置数据库镜像的时候,你是否也曾因为超大备份文件的移动而抓耳挠腮呢?当你需要跨地域传输数据 ...

  4. SQL Server 2008新特性——SSMS增强

    SQL Server 2008已经发布很多天了,今天来总结一下我们最常用的工具SSMS在SQL 2008中的一些改进: 1.在注册的服务器组中一次SQL查询可以针对多个服务器执行. 首先是要在&quo ...

  5. SQL Server 2014新特性:其他

    SQL Server 2014新特性:其他 AlwaysOn 增强功能 SQL Server 2014 包含针对 AlwaysOn 故障转移群集实例和 AlwaysOn 可用性组的以下增强功能: &q ...

  6. 云世界,一切如梦幻,数据也玩虚拟化。 SQL Server 2019 新特性系列一:数据虚拟化

    SQL Server 2019 新特性系列一:数据虚拟化 最新更新 SQL Server已经到了CTP2.2版本,主要更新了如下功能: 大数据集群:在大数据群集上使用 azure 数据工作室中的 sp ...

  7. SQL Server 2019 新特性之 SQL Server大数据群集 介绍(一)

    SQL Server 2019 新特性之 SQL Server大数据群集 介绍(一) 从开始SQL Server 2019 预览,SQL Server 大数据群集允许你部署的 Kubernetes 上 ...

  8. 新年新气象,从SQL Server 2019新特性开始!

    SQL Server 2019新特性开篇概述 2019年了,新年伊始,SQL Server 2019已经到CTP 2.1 ,一直没有认真的学习SQL Server 2019 ,既然是新年新气象,就从新 ...

  9. SQL Server 2008的外围应用配置器到哪里去了

    在SQL Server 外围应用配置器中启用 OpenRowSet 和 OpenDataSource函数 执行SQL语句:SELECT * INTO SQL SERVER中的新表 FROM OPENR ...

最新文章

  1. 点分治问题 ----------- HDU6881 Tree Cutting or 2020杭电多校第10场 [点分治+思维]
  2. 提高开发效率之安卓模板(上面有四种模板的教程,我之前会两种,看完之后还是只会两种2333)
  3. 使用IntelliJ IDEA 14和Maven创建java web项目
  4. 分区表理论解析(上):SQL Server 2k52k8系列(一)
  5. ad怎么批量改元器件封装_AD6.8的原理图中如何批量修改封装?
  6. 浅谈ButterKnife对Android性能的影响
  7. pyqt5信号与槽连接的生命周期与对象引用的生命周期
  8. 3 年大厂工作经验面试竟然要我手写 atoi 函数
  9. C# Win32API
  10. 提升效率Mysql函数(function)|存储过程(procedure)
  11. Virtualbox 修改硬盘的序列号等信息 例
  12. angular获取当前路由信息
  13. 短视频矩阵/短视频SEO矩阵系统源码/系统搭建
  14. Python画玫瑰花,七夕礼物。
  15. 智能秤方案设计——蓝牙体脂秤PCBA方案
  16. 基于S32K的MBD开发环境搭建
  17. Error 1053: The service did not respond to the start or control request in a timely fashion.问题排查
  18. 双向数据绑定原理(三种实现方式)
  19. 【116】Python 保留字(关键字)、标识符
  20. Android 电量显示Widgets插件实现

热门文章

  1. python变量的作用域及生命周期_Python——变量的作用域
  2. mobilenet cpu 加速_(300223)半导体+芯片概念,净利润增长408%!加速上涨!
  3. 程序分身:根据不同程序名执行不同函数
  4. Linux管道函数使用
  5. 《转》IN 查询时出现ORA-01795:列表中的最大表达式数为1000
  6. 【Elasticsearch】Failed to process cluster event (put-mapping) within 30s
  7. 【Elastischearch】Elastischearch bulk 请求源码
  8. 95-150-020-源码-Sink-PrintSinkFunction
  9. Spring :Sprin体系
  10. scala学习-scala中:: , +:, :+, :::, +++的区别