單一 SQL Server 執行個體常裝載多個資料庫。若某資料庫佔用過多 CPU/記憶體,會導致其他資料庫回應緩慢甚至逾時。SQL Server 2008 引入 Resource Governor,透過資源池分配與限制資源,完美解決此問題。
建立兩個資源池分別給行銷與開發資料庫:
CREATE RESOURCE POOL MarketingPool WITH (MAX_CPU_PERCENT = 10);
CREATE RESOURCE POOL DevelopmentPool WITH (MAX_CPU_PERCENT = 90);
查詢 sys.dm_resource_governor_resource_pools 可見預設 internal 與 default 池。新建池需執行 ALTER RESOURCE GOVERNOR RECONFIGURE 才生效。
SELECT * FROM sys.dm_resource_governor_configuration;APP_NAME() 判斷)。ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.fnClassifier); RECONFIGURE;設定完成後,繁忙時期系統會依比例分配 CPU,避免單一資料庫獨佔資源。