カスタム コレクション セットの作成 - ジェネリック T-SQL Query コレクター型
適用対象:SQL Server
データ コレクターで用意されているストアド プロシージャを使用して、ジェネリック T-SQL Query コレクター型を使用するコレクション アイテムを含むカスタム コレクション セットを作成できます。 この作業には、SQL Server Management Studio のクエリ エディターを使用した次の手順の実行も含まれます。
- アップロードのスケジュールを構成する
- コレクション セットを定義して作成する
- コレクション アイテムを定義して作成する
- コレクション セットとコレクション アイテムが存在することを確認する
カスタム コレクション セットを作成する前に、データ コレクションのパラメーターを構成する必要があります。 詳細については、「データ コレクションのパラメーターの構成 (Transact-SQL)」を参照してください。
コレクション セットを定義して作成する
sp_syscollector_create_collection_set
ストアド プロシージャを使用して新しいコレクション セットを定義します。USE msdb; GO 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; GO SELECT * FROM syscollector_collection_sets; SELECT * FROM syscollector_collection_items; GO
SQL Server Management Studio で視覚的なチェックを行うこともできます。 オブジェクト エクスプローラーで、 [管理] ノードを展開し、 [データ コレクション]を展開します。 新しいコレクション セットが表示されます。 コレクション セットに赤い円のアイコンが付いている場合、コレクション セットが停止されていることを示します。
例
次のコード サンプルは、上記の手順で説明されている例を組み合わせたものです。 コレクション セットのコレクション モードはキャッシュ モード (0) に設定されているため、コレクション アイテムに設定された収集頻度 (5 秒) は無視されます。 詳細については、「データ コレクション」を参照してください。
USE msdb;
GO
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
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示