0

0

第十九章使用资源调控器管理资源(1)使用SQLServer Man

php中文网

php中文网

发布时间:2016-06-07 15:18:37

|

1230人浏览过

|

来源于php中文网

原创

本系列包含: 1、使用SQLServer Management Studio 配置资源调控器 2、使用T-SQL配置资源调控器 3、监控资源调控器 前言: 在前面的章节,提到过可以通过多种配置数据库服务器的方式来提高性能。如索引、统计信息、hints、物理设计和服务器配置等。 当你完成

本系列包含:

1、 使用SQLServer Management Studio 配置资源调控器

2、 使用T-SQL配置资源调控器

3、 监控资源调控器

 

前言:

      在前面的章节,提到过可以通过多种配置数据库服务器的方式来提高性能。如索引、统计信息、hints、物理设计和服务器配置等。

      当你完成上面那些配置后,还依旧有少量存储过程、查询运行得很慢时,由于硬件资源限制,可能已经没什么好调整。如一个数据库服务器支撑着多个应用系统,其中一个是报表系统,而报表系统往往都是非常耗资源的。

      在2008之前,对于这种问题,很难作出有效的解决方法。从2008开始,引入了一个资源调控器(ResourceGovernor)来协助解决这类问题。资源调控器(下面简称RG),可以管理服务器上CPU和内存资源。不同类型的请求可以被分配到不同的资源。

RG的功能可以分为3个组件:

1、 分类(Classification)

2、 资源池(Resource pool)

3、 工作负荷组(Workload group)

RG的基本功能/体系

 第十九章使用资源调控器管理资源(1)使用SQLServer Man

分类(Classification):定义一个用户自定义标量函数作为RG的分类函数,每当请求到达时,分类函数就会执行,区分请求的类型,然后放到特定的工作负荷组(Workload Group)中。

 

工作负载组(WorkloadGroup):一个逻辑单元,包含了一组资源。属于特定的资源池(Resource Pool)SQLServer创建了两个默认的工作负载组,internal和default。

 

资源池(ResourcePool):包含对请求分配特定工作负载组的资源规则定义,SQLServer同样创建了两个资源池internal和default。

 

通过SQLServerManagement Studio 配置资源调控器:

      在开始之前,先来创建一个现实环境,假设AdventureWorks数据库是生产数据库,且有数十亿的数据。这个库提供多个应用程序使用。一个应用程序是用于web程序,一个是OLTP。另外一个应用程序是报表系统。当查询报表的时候,会影响到web程序,为了解决这个问题,可以借助RG来保存web程序的CPU和内存资源。这里保留web程序获得最少50%的CPU和内存,报表使用25%。

本文将演示使用SQLServer Management Studio(下称SSMS)来实现。

 

准备工作:

本文将创建两个资源池和工作负载组。用于给web和报表程序之用。独立的用户名分类函数区分请求很有帮助,基于用户名,分类函数将发送请求到特定的工作负载组。

 

步骤:

1、 打开ssms,确保这个登录有管理员权限,如果不能,那需要有ALTER LOGIN和CONTROL SERVER的权限。

2、 在新建窗口输入,注意本文使用AdventureWorks2012数据库:

海螺语音
海螺语音

海螺AI推出的AI语音生成工具,支持多种语种、情绪和效果。

下载


USE master
GO
 
CREATE LOGIN [AW_WebAppUser] WITH PASSWORD=N'AW_WebAppUser123' ,DEFAULT_DATABASE=AdventureWorks2012
GO
 
USE AdventureWorks2012
GO
 
CREATE USER [AW_WebAppUser] FOR LOGIN [AW_WebAppUser]
GO
ALTER ROLE [db_owner] ADD MEMBER [AW_WebAppUser]
GO
 
CREATE LOGIN [AW_ReportAppUser] WITH PASSWORD=N'AW_ReportAppUser123',DEFAULT_DATABASE=AdventureWorks2012
GO
 
USE AdventureWorks2012
GO
CREATE USER [AW_ReportAppUser] FOR LOGIN  [AW_ReportAppUser]
GO
ALTER ROLE [db_owner] ADD MEMBER  [AW_ReportAppUser]
GO


3、 创建分类函数: 

USE MASTER
GO
 
CREATE FUNCTION dbo.RGClassifier( )
RETURNS SYSNAME
    WITH SCHEMABINDING
AS
    BEGIN
        DECLARE @Workload_GroupName SYSNAME
   
        IF SUSER_NAME() = 'AW_WebAppUser'
            SET @Workload_GroupName = 'rg_WebApp'
   
        ELSE
            IF SUSER_NAME() = 'AW_ReportAppUser'
                SET @Workload_GroupName = 'rg_ReportApp'
   
            ELSE
                SET @Workload_GroupName = 'default'
        RETURN @Workload_GroupName
    END



4、 打开ssms,右键资源调控器节点,选择【属性】,就见到如下: 

第十九章使用资源调控器管理资源(1)使用SQLServer Man

5、 点击启用【启用资源调控器】:

第十九章使用资源调控器管理资源(1)使用SQLServer Man

6、 在分类函数名下拉框中,选择dbo.RGClassifier():

第十九章使用资源调控器管理资源(1)使用SQLServer Man

7、 在资源池网格中,可以找到两个默认资源池defalut和internal,现在添加一个新的资源池叫做rp_WebApp,并配置为如图,记住总和不能超过100:

第十九章使用资源调控器管理资源(1)使用SQLServer Man

8、 在资源池的工作负荷组:rp_WebApp中,创建一个新的工作负荷组rg_WebApp,并配置CPU时间为300:

第十九章使用资源调控器管理资源(1)使用SQLServer Man

9、 在资源池网格中,按上述步骤添加rp_ReportApp,并把最小CPU和内存设为25,CPU时间为300:

第十九章使用资源调控器管理资源(1)使用SQLServer Man

10、点击确定后,打开资源调控器节点:

 第十九章使用资源调控器管理资源(1)使用SQLServer Man

分析:

      在连接了SQLServer之后,先执行脚本创建用户,用于标识不同应用程序访问数据库。通过账号,分类函数会把登录名的请求发送到对应的资源池和工作负荷组。

      在创建类分区函数dbo.RGClassifier(),并在图形界面中调用这个函数。默认情况下资源调控器是禁用的,为了使其工作,需要手动启用。除了图形界面,也可以使用T-SQL语句:ALTER RESOURCEGOVERNOR RECONFIGURE命令来启动。

      如果请求不属于新建的两个资源池,会分配到default工作负荷组和default资源池。Internal工作负荷组是SQLServer内部使用的,并且DAC(专用管理员连接)是不受RG分类影响。

最后通过图形界面查看是否建立成功。

 

扩充信息:

       在现实世界中,在实施资源调控器之前,需要对各个应用程序的资源请求做一个趋势分析,可以帮助你更好地分配资源。

       在资源池中定义的MIN参数是不共享的,也就是别的请求不能占用这部分,是专用的资源。资源调控器可以有多个资源池。这就是为什么MIN中的百分比总和不能超过100.

        另一方面,MAX参数的值是共享的,实际的MAX值会根据MIN的值来调整。

相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.2万人学习

Excel 教程
Excel 教程

共162课时 | 9.3万人学习

C# 教程
C# 教程

共94课时 | 5.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号