3.10 资源监控器
SQL Server 2008中新的资源监控器使你可以控制分配给你的关系型数据库工 作负载不同部分的CPU和内存资源的数量。它可以用来防止失控查询(它阻止资源分配给其它工作负载)以 及为你的工作负载重要部分预留资源。SQL Server 2005资源策略平等地对待所有的工作负载,并按需分 配共享资源(例如,CPU带宽、内存)。这有时会引起资源分配不按比例,从而导致性能不均衡或意料外的 速度降低。
资源监控器的首要目标如下所示:
a. 监控:使得可以监控每组请求的资源消 耗(工作负载分组)。
b. 可预测性:使得能够对存在资源竞争的环境中预测工作负载的执行。这是 通过显示制定工作负载间的资源边界来完成的(通过资源池控制)。资源边界的使用还能防止或降低查询失 控的可能性。资源监控器所提供的监控功能使得更容易发现失控查询。
c. 优先级:使得可以设置 工作负载优先级。
要理解资源监控器,有三个新的概念是很重要的:工作负载分组、资源池、分 类(和分类器用户定义的函数)。
◆组:一个工作负载组,或组,是一个用户指定的请求分类,它 与应用于每一个请求的分类规则类似。组的值存在于资源消耗聚合监控和一个用于组内所有请求的统一政 策中。组定义了用于它的成员的政策。
◆池:一个资源池,或池,它显示了服务器一部分物理资 源。根据它的设置,池可以有固定大小(每一个的最大和最小资源使用设置是相等的)或者在多个池之间共 享一部分(它的最小小于它可用的最大设置)。在这种情形下,共享只是意味着资源提供给最先请求资源的 池。在默认配置下,所有的资源都是共享的,因此维护向后兼容SQL Server 2005政策。
分类:分 类是一组用户编写的规则,使得资源监控器可以将请求分类到之前描述的组里面。它是通过一个梯度 Transact-SQL用户定义的函数(UDF)来执行的,UDF旨在作为资源监控器的一个“分类器UDF” 。
这些概念在下面的图片里进行了描述。
图5: 资源监控器例子 :请求、分类、组,以及池
资源监控器可以用在没有任何应用程序改动的情况下。