SQL Server2014インスタンスでリソースガバナーを構成/トラブルシューティングしようとしています。デフォルトのリソースプール以外には何もできません。私はこのトラブルシューティングガイドに従っています: http://technet.Microsoft.com/en-us/library/cc627395(v = sql.105).aspx
もともと条件付きだった私の分類関数は、何かを実行しようとして、すべての場合にリソースプール名を返すだけです。
USE [master]
GO
/****** Object: UserDefinedFunction [dbo].[RGClassifier] Script Date: 7/25/2014 7:26:51 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[RGClassifier] ()
RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN
DECLARE @GroupName SYSNAME
SET @GroupName = N'in-memory'
RETURN @GroupName
END
いくつかのトラブルシューティングの結果は次のとおりです。
USE master
SELECT
object_schema_name(classifier_function_id) AS [schema_name],
object_name(classifier_function_id) AS [function_name]
FROM sys.dm_resource_governor_configuration
戻り値:
schema_name function_name
dbo RGClassifier
Sys.dm_resource_governor_configurationおよびsys.resource_governor_configurationのクエリは、それが有効であり、保留中の再構成がないことを示しています。
この時点で多かれ少なかれ泥の中に閉じ込められています。いくつかのポインタが必要になる前に、誰かがリソースガバナーを正常に構成した場合。
返されたグループ名が実際のワークロードグループ名と(同じように)一致することを確認してください。場合によっては、再構成する必要があるとは言われていなくても、再構成すると役立つことがあります。
use master
GO
-- Create a test DB which our CF will be based on
CREATE DATABASE RGDB;
GO
-- enable RG
ALTER RESOURCE GOVERNOR RECONFIGURE
GO
CREATE FUNCTION dbo.RGClassifier()
RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN
IF (ORIGINAL_DB_NAME() = 'RGDB')
RETURN N'OriginalDBWG'
RETURN N'Default'
END
GO
-- Create a new Pool
CREATE RESOURCE POOL OriginalDBPool
WITH (
MAX_CPU_PERCENT = 10
)
GO
--Create a new WG
CREATE WORKLOAD GROUP OriginalDBWG USING OriginalDBPool
GO
ALTER RESOURCE GOVERNOR WITH ( CLASSIFIER_FUNCTION = dbo.RGClassifier)
GO
ALTER RESOURCE GOVERNOR RECONFIGURE
GO
これを実行した後、新しいクエリウィンドウを開き、次を実行してプール名を確認します。
SELECT wg.name FROM sys.dm_exec_sessions s inner join sys.dm_resource_governor_workload_groups wg on s.group_id = wg.group_id where s.session_id = @@SPID
次に、接続を変更し、追加のパラメーターを追加します
database=RGDB;
次に、クエリを再度実行します。ワークロードグループ名の変更が表示されます。