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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

来源: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联机文档):

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

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

--  将更改应用于资源调控器内存中配置 ALTER  RESOURCE GOVERNOR  RECONFIGURE ;
GO
复制代码


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


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

select * from sys.dm_resource_governor_resource_pools


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

select   *   from  sys.dm_resource_governor_workload_groups



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

USE  master
CREATE  LOGIN USER_READONLY  WITH  PASSWORD  = ' Nzperfect '
GO


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


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

DECLARE   @CNT   INT
WHILE   1 = 1
BEGIN
    
SELECT   @CNT = COUNT ( * FROM  sys.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使用的资源,以确保其它进程拥用更多的资源。

--测试结束,删除测试

复制代码
USE  master
GO
DROP  WORKLOAD  GROUP  gMAX_CPU_PERCENT_10
GO
ALTER  RESOURCE GOVERNOR  RECONFIGURE ;
GO
DROP  RESOURCE POOL pMAX_CPU_PERCENT_10
GO
ALTER  RESOURCE GOVERNOR  RECONFIGURE ;
GO
ALTER  RESOURCE GOVERNOR  WITH  (CLASSIFIER_FUNCTION =   null );
GO
ALTER  RESOURCE GOVERNOR  RECONFIGURE ;
GO
DROP   FUNCTION   [ dbo ] . [ rgclassifier_MAX_CPU ]
GO
复制代码
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
2月前
|
SQL 存储 数据库
SQL学习一:ACID四个特性,CURD基本操作,常用关键字,常用聚合函数,五个约束,综合题
这篇文章是关于SQL基础知识的全面介绍,包括ACID特性、CURD操作、常用关键字、聚合函数、约束以及索引的创建和使用,并通过综合题目来巩固学习。
35 1
|
5月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之使用API调用ODPS SQL时,出现资源被定时任务抢占,该怎么办
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
7月前
|
SQL XML Java
MyBatis的强大特性--动态SQL
MyBatis的强大特性--动态SQL
83 2
|
7月前
|
SQL 监控 关系型数据库
【PolarDB开源】PolarDB SQL优化实践:提升查询效率与资源利用
【5月更文挑战第24天】PolarDB是高性能的云原生数据库,强调SQL查询优化以提升性能。本文分享了其SQL优化策略,包括查询分析、索引优化、查询重写、批量操作和并行查询,以及性能监控与调优方法。通过这些措施,可以减少响应时间、提高并发处理能力和降低成本。文中还提供了相关示例代码,展示如何分析查询和创建索引,帮助用户实现更高效的数据库管理。
273 1
|
7月前
|
SQL 关系型数据库 MySQL
TiDB特有的SQL语法和特性
【2月更文挑战第28天】本章将深入探讨TiDB特有的SQL语法和特性,这些功能和优化是TiDB相较于传统关系型数据库所独有的。通过了解这些特性,读者将能更充分地利用TiDB的优势,优化数据库性能,提升业务处理效率。
|
SQL 存储 Oracle
【数据库05】玩转SQL的高阶特性 2
【数据库05】玩转SQL的高阶特性
|
SQL 存储 Java
【数据库05】玩转SQL的高阶特性 1
【数据库05】玩转SQL的高阶特性
|
消息中间件 SQL 存储
Flink1.9新特性解读:通过Flink SQL查询Pulsar
Flink1.9新特性解读:通过Flink SQL查询Pulsar
465 0
Flink1.9新特性解读:通过Flink SQL查询Pulsar
|
SQL 存储 关系型数据库
Navicat for MySQL资源分享和下载以及SQL文件的导入导出
Navicat for MySQL资源分享和下载以及SQL文件的导入导出
574 0
Navicat for MySQL资源分享和下载以及SQL文件的导入导出
下一篇
无影云桌面