SQL Server研究之使用资源调控器管理资源

前言:

在前一章已经演示了如何使用SSMS来配置资源调控器。但是作为DBA,总有需要写脚本的时候,因为它可以重用及扩展。并且可以在不同服务器快速部署。

下面来演示如何实现:

步骤:

1、  打开ssms,连到SQLServer。确保登录账号有CONTROLSERVER的权限。

2、  运行下面脚本,删除前面创建过的资源调控器对象

USE master
GO
DROP WORKLOAD GROUP rg_WebApp
DROP RESOURCE POOL  rp_WebApp
DROP WORKLOAD GROUP rg_ReportApp
DROP RESOURCE POOL  rp_ReportApp
GO

3、  现在执行语句来创建下面对象,此处的分类函数参考上一章:

USE master
GO

CREATE RESOURCE POOL [rp_WebApp]
WITH
(
MIN_CPU_PERCENT=50,
MAX_CPU_PERCENT =100,
MIN_MEMORY_PERCENT =50,
MAX_MEMORY_PERCENT =100
)
GO

CREATE WORKLOAD GROUP [rg_WebApp]
WITH
(
GROUP_MAX_REQUESTS=0,
IMPORTANCE=MEDIUM,
REQUEST_MAX_CPU_TIME_SEC=300,
REQUEST_MAX_MEMORY_GRANT_PERCENT=25,
REQUEST_MEMORY_GRANT_TIMEOUT_SEC=0,
MAX_DOP=0
)USING [rp_WebApp]
GO

CREATE RESOURCE POOL [rp_ReportApp]
WITH
(
MIN_CPU_PERCENT=25,
MAX_CPU_PERCENT =100,
MIN_MEMORY_PERCENT =25,
MAX_MEMORY_PERCENT =100
)
GO

CREATE WORKLOAD GROUP [rg_ReportApp]
WITH
(
GROUP_MAX_REQUESTS=0,
IMPORTANCE=MEDIUM,
REQUEST_MAX_CPU_TIME_SEC=300,
REQUEST_MAX_MEMORY_GRANT_PERCENT=25,
REQUEST_MEMORY_GRANT_TIMEOUT_SEC=0,
MAX_DOP=0
)USING [rp_ReportApp]
GO 

ALTER RESOURCE GOVERNOR
WITH (CLASSIFIER_FUNCTION=[dbo].[RGClassifier]
);
GO

ALTER RESOURCE GOVERNOR RECONFIGURE
GO

4、  为了检查是否创建成功,可以通过DMV查询,这里用到下面两个DMV来查询:sys.dm_resource_governor_resource_pools 、sys.dm_resource_governor_workload_groups

SELECT  pool_id ,
        name
FROM    sys.dm_resource_governor_resource_pools

SELECT  group_id ,
        name ,
        pool_id
FROM    sys.dm_resource_governor_workload_groups

5、  从截图上可以看出已经创建成功:

上面的步骤可以通过ssms操作时,界面中上部的【脚本】按钮生成,但是由于ssms生成的T-SQL有些不是最优化的,所以如果你不是不懂,那就自己写吧。

扩充知识:

下面几个配置选项在本文中用到,简要说明一下文章参考了游戏编程网www.cgzhw.com的资源特此注明:

1、  IMPORTANCE:定义工作负荷组中对请求处理的重要性,其值为LOW/MEDIUM/HIGH。

2、  GROUP_MAX_REQUESTS:定义在一个工作负荷组中最大并行执行的请求数量。

3、  MAX_DOP:在一个工作负荷组中并行请求的最大并行度。

4、  REQUEST_MAX_MEMORY_GRANT_PERCENT:对于一个工作负荷组中,一个单独的请求能用的最大内存数。

5、  REQUEST_MAX_CPU_TIME_SEC: 对于一个工作负荷组中,一个单独的请求可以使用的最大秒数。

6、  REQUEST_MEMORY_GRANT_TIMEOUT_SEC: 指定查询等待内存授予(工作缓冲区内存)变为可用的最长时间(以秒为单位)。

SQL Server研究之使用资源调控器管理资源

时间: 2024-08-02 13:52:51

SQL Server研究之使用资源调控器管理资源的相关文章

使用资源调控器管理资源

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

在SQL Server 2014里,如何用资源调控器压制你的存储?

在今天的文章里,我想谈下SQL Server 2014里非常酷的提升:现在你终于可以根据需要的IOPS来压制查询!资源调控器(Resource Governor)自SQL Server 2008起引入,但提供的功能还是有所限制:你只能限制CPU时间(这个已经很棒了),还有你能限制查询(从每个独立的查询)内存量. 但作为DBA的你,你经常会进行一些数据库维护操作,例如索引重建,DBCC CHECKDB操作等.我们都知道,这些操作会在你的存储里带来大量的IOPS直至峰值.如果在7 * 24在线的数据

配置SQL Server 2008的资源调控器实现负载均衡

原文:配置SQL Server 2008的资源调控器实现负载均衡 转自:http://www.ithov.com/server/93267.shtml 1.为什么引入"资源调控器"? 在SQL Server 2008之前,数据库引擎曾尝试为所有并发用户提供均衡的性能,这使我们几乎无法控制分配给用户或工作负载的优先级,而且随着并发登录的增加会雪上加霜."资源调控器"有助于防止性能问题,并识别正在使用的应用程序."资源调控器"可以控制分配给会话的CP

SQL Server 2014里的IO资源调控器

在本文中,我们将来看看SQL Server 2014在资源调控器方面增加了哪些新的功能.资源调控器(Resource Governor)是从SQL Server 2008开始出现的一项功能.它是用于管理 SQL Server 工作负荷和系统资源使用情况的功能. 在SQL Server 2014之前,资源调控器只能限制某些用户访问SQL Server所占用的CPU带宽.内存资源.但是随着虚拟化和云技术的发展,IO的控制有了很大的需求.IaaS(Infrastructure as a Service

SQL Server研究之统计信息—发现过期统计信息并处理详解

 前言: 统计信息是关于谓词中的数据分布的主要信息源,如果不知道具体的数据分布,优化器不能获得预估的数据集,从而不能统计需要返回的数据. 在创建列的统计信息后,在DML操作如insert.update.delete后,统计信息就会过时.因为这些操作更改了数据,影响了数据分布.此时需要更新统计信息. 在高活动的表中,统计信息可能几个小时就会过时.对于静态表,可能几个星期才会过时.这要视乎表上DML的操作. 从2000开始,SQLServer对增删改操作会增加在表sysindexes中的RowM

sql server 性能调优之 CPU消耗最大资源分析1 (自sqlserver服务启动以后)

原文:sql server 性能调优之 CPU消耗最大资源分析1 (自sqlserver服务启动以后) 一. 概述 上次在介绍性能调优中讲到了I/O的开销查看及维护,这次介绍CPU的开销及维护, 在调优方面是可以从多个维度去发现问题如I/O,CPU,  内存,锁等,不管从哪个维度去解决,都能达到调优的效果,因为sql server系统作为一个整体性,它都是紧密相连的,例如:解决了sql语句中I/O开销较多的问题,那对应的CPU开销也会减少,反之解决了CPU开销最多的,那对应I/O开销也会减少.解

SQL Server与Oracle对比学习:表的管理和组织

http://blog.csdn.net/weiwenhp/article/details/8088979 我们知道数据库,顾名思义.最重要的东东就是管理数据,而数据在系统中主要是保存在表(table)中,所以数据库差不多所有的机制和操作都是围绕着table在打转转了.表的重要性可想而知.在表在数据库是怎么保存起来,怎么去访问呢? Oralce中的表的管理机制 实际上数据库管理系统和文件系统很类似的.数据库中的所有信息最终也是保存在一个个实际的文件中. Oracle中的表都是最终保存在一个个后缀

SQL Server通过web方式进行远程维护,管理

现在许多应用都在布署到云端,那么数据库都需要远程管理维护,那么基于web的方式进行操作是比较安全便捷的. TreeSoft数据库管理软件使用JAVA开发,采用稳定通用的springMVC+JDBC架构,实现基于web方式对SQL Server,MySQL,Oracle,PostgreSQL 数据库进行维护管理操作. 功能包括:数据库的展示,库表的展示,表字段结构的展示, SQL语句的在线编辑批量执行,表结构的在线设计维护,数据的在线编辑维护,查询语句保存,JSON数据格式化,SQL语法帮助,在线

SQL Server Management Studio的对象资源管理器的使用

1.查看 2.对象资源管理器 3.点到某个表的身上 4.出现以下图片,因为有时动态创建的触发器,刷新表下面的触发器可能不出来,所以来这里面找