sqlserver资源调配器

--配置资源调控器.
USE master
GO
-- 创建并配置一个资源调控器资源池,发生 CPU 争用时,
-- 该资源池将限制分配给资源池中的请求的最大平均 CPU 带宽为 10%
CREATE RESOURCE POOL pMAX_CPU_PERCENT_30 WITH (MAX_CPU_PERCENT = 30)
GO
-- 创建并配置一个使用该池的资源调控器工作负荷组。
CREATE WORKLOAD GROUP gMAX_CPU_PERCENT_30 USING pMAX_CPU_PERCENT_30;
GO
-- 创建一个“分类器函数”,它是一个用户定义函数 (UDF),
-- 其返回值供资源调控器用来对会话进行分类,以便将它们路由到适当的工作负荷组
-- 本例是限制用户为:USER_READONLY所使用的cpu资源不超过10%

USE master
GO
CREATE FUNCTION rgclassifier_MAX_CPU ( )
RETURNS SYSNAME
WITH SCHEMABINDING
AS
BEGIN
DECLARE @workload_group_name SYSNAME
--Handle workload groups defined by login names
IF SUSER_SNAME() = 'travelOp'
BEGIN
SET @workload_group_name = 'gMAX_CPU_PERCENT_30';--gMAX_CPU_PERCENT_30 负载组
RETURN @workload_group_name;
END
RETURN @workload_group_name;
END

 

 

-- 将分类器函数rgclassifier_MAX_CPU注册到资源调控器 一定要加dbo架构名 不然会报错
Alter Resource Governor With(Classifier_Function=dbo.rgclassifier_MAX_CPU);
GO
-- 将更改应用于资源调控器
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

 

--包含资源调控器的当前内存中配置状态的行
SELECT * FROM SYS.[dm_resource_governor_configuration]


--当前资源池状态、资源池的当前配置以及资源池统计信息的相关信息
SELECT
[pool_id],
[name],
[statistics_start_time],
[max_cpu_percent]
FROM SYS.[dm_resource_governor_resource_pools]

 

--工作负荷组统计信息和工作负荷组当前在内存中的配置
SELECT * FROM SYS.[dm_resource_governor_workload_groups]

posted @ 2021-11-17 14:51  大漠老兵  阅读(83)  评论(0编辑  收藏  举报