SQL Server2008 新特性 Resource Governor
Sql Server2008 推出了已經(jīng)有一段時(shí)間了,這里給大家介紹一下 Sql Server2008 的一個(gè)很不錯(cuò)的新特性,Resource Governor。
相信大家都遇到過(guò),一個(gè)服務(wù)器上面運(yùn)行多個(gè)數(shù)據(jù)庫(kù)的情況,如果1個(gè)數(shù)據(jù)庫(kù)占用資源過(guò)多,很可能直接導(dǎo)致另外一個(gè)數(shù)據(jù)庫(kù)無(wú)法處理,直到超時(shí)的情況。過(guò)去這種情況基本無(wú)法處理(當(dāng)然不排除使用三方程序處理的方法)。嘿嘿,在新的Sql Server 2008 中,就可以完美的解決這個(gè)問(wèn)題了。答案就是Resource Governor。
Resource Governor 可以通過(guò)創(chuàng)建資源池(Resource Pool)的方式,對(duì)不同資源池分別分配服務(wù)器資源(CPU,內(nèi)存),這里設(shè)置的是,資源池最繁忙時(shí)期的分配值。簡(jiǎn)單的說(shuō),現(xiàn)在我有兩個(gè)數(shù)據(jù)庫(kù),DataBaseA和DataBaseB,那么我們可以創(chuàng)建兩個(gè)資源池PoolA和PoolB,給PoolA分配10%的CPU和內(nèi)存,PoolB分配90%的CPU和內(nèi)存。那么當(dāng)DataBaseA和DataBaseB都繁忙的時(shí)候,系統(tǒng)會(huì)分別分配相應(yīng)的資源給他們,讓他們都能夠完成自己的工作(當(dāng)然,性能可能有所下降,畢竟只使用10%的資源),從而避免了高并發(fā)性時(shí),資源獨(dú)占的情況。很好吧,下面我們就通過(guò)一個(gè)實(shí)例來(lái)給大家演示一下。
1. 首先可以查看一下當(dāng)前資源池的配置情況
USE master; GO
SELECT * FROM sys.dm_resource_governor_configuration; GO
如果如上圖所示,那么說(shuō)明目前沒(méi)有創(chuàng)建任何資源池。(創(chuàng)建資源池的時(shí)候需要綁定一個(gè)classifier的函數(shù),如果綁定了,會(huì)顯示函數(shù)的ObjectID)
2. 創(chuàng)建2個(gè)資源池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資源。(當(dāng)然你也可以加上內(nèi)存的分配,不過(guò)個(gè)人感覺(jué)一般CPU比較重要,內(nèi)存這東西不好說(shuō))
3. 可以先看一下當(dāng)前Resource Governor的配置情況
SELECT * FROM sys.dm_resource_governor_resource_pools; GO
你會(huì)發(fā)現(xiàn),如上所示結(jié)果,只有兩個(gè)資源池,并且不是我們創(chuàng)建的。
internal和default資源池是系統(tǒng)默認(rèn)的資源池,如果沒(méi)有手動(dòng)設(shè)置Resource Governor的話,創(chuàng)建的數(shù)據(jù)庫(kù)會(huì)被默認(rèn)放到default資源池當(dāng)中。(后面你還會(huì)看到對(duì)應(yīng)的 WORKLOAD GROUP)
為什么我們創(chuàng)建的資源池沒(méi)有看到呢?其實(shí)是我們的配置還沒(méi)有設(shè)定上去,Sql Server08的設(shè)置修改后,需要手動(dòng) RECONFIGURE 來(lái)重置配置信息。
出處:哈利路亞
責(zé)任編輯:bluehearts
上一頁(yè) 下一頁(yè) SQL Server2008 Resource Governor [2]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|