WEB开发网
开发学院数据库MSSQL Server SQL2008新特性Resource Governor 阅读

SQL2008新特性Resource Governor

 2009-04-08 15:44:36 来源:WEB开发网   
核心提示:SQL Server2008 新特性 Resource GovernorSql Server2008 推出了已经有一段时间了,这里给大家介绍一下 Sql Server2008 的一个很不错的新特性,SQL2008新特性Resource Governor,Resource Governor,相信大家都遇到过,(后面你还会

SQL Server2008 新特性 Resource Governor

Sql Server2008 推出了已经有一段时间了,这里给大家介绍一下 Sql Server2008 的一个很不错的新特性,Resource Governor。

相信大家都遇到过,一个服务器上面运行多个数据库的情况,如果1个数据库占用资源过多,很可能直接导致另外一个数据库无法处理,直到超时的情况。过去这种情况基本无法处理(当然不排除使用三方程序处理的方法)。嘿嘿,在新的Sql Server 2008 中,就可以完美的解决这个问题了。答案就是Resource Governor。

Resource Governor 可以通过创建资源池(Resource Pool)的方式,对不同资源池分别分配服务器资源(CPU,内存),这里设置的是,资源池最繁忙时期的分配值。简单的说,现在我有两个数据库,DataBaseA和DataBaseB,那么我们可以创建两个资源池PoolA和PoolB,给PoolA分配10%的CPU和内存,PoolB分配90%的CPU和内存。那么当DataBaseA和DataBaseB都繁忙的时候,系统会分别分配相应的资源给他们,让他们都能够完成自己的工作(当然,性能可能有所下降,毕竟只使用10%的资源),从而避免了高并发性时,资源独占的情况。很好吧,下面我们就通过一个实例来给大家演示一下。

1. 首先可以查看一下当前资源池的配置情况

USE master;

GO

SELECT * FROM sys.dm_resource_governor_configuration;

GO

如果如上图所示,那么说明目前没有创建任何资源池。(创建资源池的时候需要绑定一个classifier的函数,如果绑定了,会显示函数的ObjectID)

2. 创建2个资源池MarketingPool和DevelopmentPool,

CREATE RESOURCE POOL MarketingPool

WITH (MAX_CPU_PERCENT = 10);

GO

CREATE RESOURCE POOL DevelopmentPool

WITH (MAX_CPU_PERCENT = 90);

GO

MarketingPool分配了10%CPU资源,DevelopmentPool分配了90%CPU资源。(当然你也可以加上内存的分配,不过个人感觉一般CPU比较重要,内存这东西不好说)

3. 可以先看一下当前Resource Governor的配置情况

SELECT * FROM sys.dm_resource_governor_resource_pools;

GO

你会发现,如上所示结果,只有两个资源池,并且不是我们创建的。

internal和default资源池是系统默认的资源池,如果没有手动设置Resource Governor的话,创建的数据库会被默认放到default资源池当中。(后面你还会看到对应的 WORKLOAD GROUP)

为什么我们创建的资源池没有看到呢?其实是我们的配置还没有设定上去,Sql Server08的设置修改后,需要手动 RECONFIGURE 来重置配置信息。

1 2 3 4 5  下一页

Tags:SQL 特性 Resource

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接