カスタム コレクション セットの作成 - ジェネリック T-SQL Query コレクター型Create Custom Collection Set - Generic T-SQL Query Collector Type

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

データ コレクターで用意されているストアド プロシージャを使用して、ジェネリック T-SQL Query コレクター型を使用するコレクション アイテムを含むカスタム コレクション セットを作成できます。You can create a custom collection set with collection items that use the Generic T-SQL Query collector type by using the stored procedures that are provided with the data collector. この作業には、 [SQL Server Management Studio]SQL Server Management Studio のクエリ エディターを使用した次の手順の実行も含まれます。Accomplishing this task involves using Query Editor in [SQL Server Management Studio]SQL Server Management Studio to carry out the following procedures:

  • アップロードのスケジュールを構成する。Configure upload schedules.

  • コレクション セットを定義して作成する。Define and create the collection set.

  • コレクション アイテムを定義して作成する。Define and create a collection item.

  • コレクション セットとコレクション アイテムが存在することを確認する。Verify that the collection set and collection items exist.

注意

カスタム コレクション セットを作成する前に、データ コレクションのパラメーターを構成する必要があります。Before you create a custom collection set, you must configure data collection parameters. 詳細については、「データ コレクションのパラメーターの構成 (Transact-SQL)」を参照してください。For more information, see Configure Data Collection Parameters (Transact-SQL).

コレクション セットを定義して作成するDefine and create the collection set

  1. sp_syscollector_create_collection_set ストアド プロシージャを使用して、新しいコレクション セットを定義します。Define a new collection set using the sp_syscollector_create_collection_set stored procedure.

    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 (非キャッシュ) に設定できます。The collection mode can be set to either 0 (cached) or to 1 (non-cached).

    ログ記録レベルは、0、1、または 2 に設定できます。The logging level can be set to 0, 1 or 2.

    データ コレクターには、以下の事前に構成されたスケジュールが用意されています。The following preconfigured schedules are provided with the data collector:

    • CollectorSchedule_Every_5minCollectorSchedule_Every_5min

    • CollectorSchedule_Every_10minCollectorSchedule_Every_10min

    • CollectorSchedule_Every_15minCollectorSchedule_Every_15min

    • CollectorSchedule_Every_30minCollectorSchedule_Every_30min

    • CollectorSchedule_Every_60minCollectorSchedule_Every_60min

    • CollectorSchedule_Every_6hCollectorSchedule_Every_6h

      用意されているスケジュールのいずれも使用しない場合は、コレクション セットに新しいスケジュールを作成して使用できます。If you do not want to use one of the schedules that are provided, you can create a new schedule and use it for the collection set. 詳細については、「 スケジュールの作成とジョブへのアタッチ」を参照してください。For more information, see Create and Attach Schedules to Jobs.

コレクション アイテムを定義して作成するDefine and create a collection item

  1. 新しいコレクション アイテムはインストール済みのジェネリックコレクター型に基づいているため、次のコードを実行して、ジェネリック T-SQL Query コレクター型に対応するように GUID を設定できます。Because the new collection item is based on a generic collector type that is already installed, you can run the following code to set the GUID to correspond to the Generic T-SQL Query collector type.

    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;  
    
  2. sp_syscollector_create_collection_item ストアド プロシージャを使用してコレクション アイテムを作成します。Use the sp_syscollector_create_collection_item stored procedure to create the collection item. コレクション アイテムがジェネリック T-SQL Query コレクター型に必要なスキーマにマップされるように、コレクション アイテムのスキーマを宣言します。Declare the schema for the collection item so it maps to the schema that is required for the Generic T-SQL Query collector type.

    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;  
    

新しいコレクション セットとコレクション アイテムが存在することを確認するVerify that the new collection set and collection item exist

  1. 新しいコレクション セットを開始する前に、次のクエリを実行して新しいコレクション セットとそのコレクション アイテムが作成されていることを確認します。Before starting the new collection set, run the following query to verify that the new collection set and its collection item have been created.

    USE msdb;  
    SELECT * FROM syscollector_collection_sets;  
    SELECT * FROM syscollector_collection_items;  
    GO  
    

    [SQL Server Management Studio]SQL Server Management Studioで目視で確認することもできます。You can also do a visual check in [SQL Server Management Studio]SQL Server Management Studio. オブジェクト エクスプローラーで、 [管理] ノードを展開し、 [データ コレクション] を展開します。In Object Explorer, expand the Management node, and then expand Data Collection. 新しいコレクション セットが表示されます。The new collection set will be displayed. コレクション セットに赤い円のアイコンが付いている場合、コレクション セットが停止されていることを示します。The red circle icon for the collection set indicates that the collection set is stopped.

Example

次のコード サンプルは、上記の手順で説明されている例を組み合わせたものです。The following code sample combines the examples that are documented in the previous steps. コレクション セットのコレクション モードはキャッシュ モード (0) に設定されているため、コレクション アイテムに設定された収集頻度 (5 秒) は無視されます。Note that the collection frequency that is set for the collection item (5 seconds) is ignored because the collection set collection mode is set to 0, which is cached mode. 詳細については、「 Data Collection」を参照してください。For more information, see Data Collection.

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  

参照See Also

データ コレクター ストアド プロシージャ (Transact-SQL) Data Collector Stored Procedures (Transact-SQL)
[スケジュールの管理] Manage Schedules
コレクション セットの開始または停止Start or Stop a Collection Set