ジェネリック T-SQL Query コレクター型を使用するカスタム コレクション セットの作成 (Transact-SQL)
データ コレクターで用意されているストアド プロシージャを使用して、ジェネリック T-SQL Query コレクター型を使用するコレクション アイテムを含むカスタム コレクション セットを作成できます。 この作業には、SQL Server Management Studio のクエリ エディターを使用した次の手順の実行も含まれます。
アップロードのスケジュールを構成する。
コレクション セットを定義して作成する。
コレクション アイテムを定義して作成する。
コレクション セットとコレクション アイテムが存在することを確認する。
注 |
---|
カスタム コレクション セットを作成する前に、データ コレクションのパラメーターを構成する必要があります。 詳細については、「データ コレクションのパラメーターの構成 (Transact-SQL)」を参照してください。 |
コレクション セットを定義して作成する
sp_syscollector_create_collection_set ストアド プロシージャを使用して、新しいコレクション セットを定義します。
USE msdb; DECLARE @collection_set_id int; DECLARE @collection_set_uid uniqueidentifier; EXEC sp_syscollector_create_collection_set @name=N'DMV Test 1', @collection_mode=0, @description=N'This is a test collection set', @logging_level=1, @days_until_expiration=14, @schedule_name=N'CollectorSchedule_Every_15min', @collection_set_id=@collection_set_id OUTPUT, @collection_set_uid=@collection_set_uid OUTPUT; SELECT @collection_set_id, @collection_set_uid;
コレクション モードは、0 (キャッシュ) または 1 (非キャッシュ) に設定できます。
ログ記録レベルは、0、1、または 2 に設定できます。
データ コレクターには、以下の事前に構成されたスケジュールが用意されています。
CollectorSchedule_Every_5min
CollectorSchedule_Every_10min
CollectorSchedule_Every_15min
CollectorSchedule_Every_30min
CollectorSchedule_Every_60min
CollectorSchedule_Every_6h
用意されているスケジュールのいずれも使用しない場合は、コレクション セットに新しいスケジュールを作成して使用できます。 詳細については、「スケジュールの作成とジョブへのアタッチ」を参照してください。
コレクション アイテムを定義して作成する
新しいコレクション アイテムはインストール済みのジェネリックコレクター型に基づいているため、次のコードを実行して、ジェネリック T-SQL Query コレクター型に対応するように GUID を設定できます。
DECLARE @collector_type_uid uniqueidentifier; SELECT @collector_type_uid = collector_type_uid FROM [msdb].[dbo].[syscollector_collector_types] WHERE name = N'Generic T-SQL Query Collector Type'; DECLARE @collection_item_id int;
sp_syscollector_create_collection_item ストアド プロシージャを使用してコレクション アイテムを作成します。 コレクション アイテムがジェネリック T-SQL Query コレクター型に必要なスキーマにマップされるように、コレクション アイテムのスキーマを宣言します。
EXEC sp_syscollector_create_collection_item @name=N'Query Stats - Test 1', @parameters=N' <ns:TSQLQueryCollector xmlns:ns="DataCollectorType"> <Query> <Value>SELECT * FROM sys.dm_exec_query_stats</Value> <OutputTable>dm_exec_query_stats</OutputTable> </Query> </ns:TSQLQueryCollector>', @collection_item_id=@collection_item_id OUTPUT, @frequency=5, @collection_set_id=@collection_set_id, @collector_type_uid=@collector_type_uid; SELECT @collection_item_id;
新しいコレクション セットとコレクション アイテムが存在することを確認する
新しいコレクション セットを開始する前に、次のクエリを実行して新しいコレクション セットとそのコレクション アイテムが作成されていることを確認します。
USE msdb; SELECT * FROM syscollector_collection_sets; SELECT * FROM syscollector_collection_items; GO
SQL Server Management Studio で目視で確認することもできます。 オブジェクト エクスプローラーで、[管理] ノードを展開し、[データ コレクション] を展開します。 新しいコレクション セットが表示されます。 コレクション セットに赤い円のアイコンが付いている場合、コレクション セットが停止されていることを示します。
使用例
次のコード サンプルは、上記の手順で説明されている例を組み合わせたものです。 コレクション セットのコレクション モードはキャッシュ モード (0) に設定されているため、コレクション アイテムに設定された収集頻度 (5 秒) は無視されます。 詳細については、「データ コレクション」を参照してください。
USE msdb;
DECLARE @collection_set_id int;
DECLARE @collection_set_uid uniqueidentifier
EXEC dbo.sp_syscollector_create_collection_set
@name = N'DMV Stats Test 1',
@collection_mode = 0,
@description = N'This is a test collection set',
@logging_level=1,
@days_until_expiration = 14,
@schedule_name=N'CollectorSchedule_Every_15min',
@collection_set_id = @collection_set_id OUTPUT,
@collection_set_uid = @collection_set_uid OUTPUT;
SELECT @collection_set_id,@collection_set_uid;
DECLARE @collector_type_uid uniqueidentifier;
SELECT @collector_type_uid = collector_type_uid FROM syscollector_collector_types
WHERE name = N'Generic T-SQL Query Collector Type';
DECLARE @collection_item_id int;
EXEC sp_syscollector_create_collection_item
@name= N'Query Stats - Test 1',
@parameters=N'
<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
<Query>
<Value>select * from sys.dm_exec_query_stats</Value>
<OutputTable>dm_exec_query_stats</OutputTable>
</Query>
</ns:TSQLQueryCollector>',
@collection_item_id = @collection_item_id OUTPUT,
@frequency = 5, -- This parameter is ignored in cached mode
@collection_set_id = @collection_set_id,
@collector_type_uid = @collector_type_uid;
SELECT @collection_item_id;
GO
関連項目
参照
データ コレクター ストアド プロシージャ (Transact-SQL)