次の方法で共有


sp_syscollector_create_collection_item (Transact-SQL)

ユーザー定義のコレクション セット内にコレクション アイテムを作成します。コレクション アイテムでは、収集するデータとデータの収集頻度を定義します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_syscollector_create_collection_item 
      [ @collection_set_id = ] collection_set_id 
        , [ @collector_type_uid = ] 'collector_type_uid'
        , [ @name = ] 'name' 
        , [ [ @frequency = ] frequency ]
        , [ @parameters = ] 'parameters'
        , [ @collection_item_id = ] collection_item_id OUTPUT

引数

  • [ @collection_set_id = ] collection_set_id
    コレクション セットの一意なローカル識別子を指定します。collection_set_id のデータ型は int です。

  • [ @collector_type_uid = ] 'collector_type_uid'
    この項目に使用するコレクター型を識別する GUID を指定します。collector_type_uid のデータ型は uniqueidentifier で、既定値はありません。コレクター型の一覧については、syscollector_collector_types システム ビューにクエリを実行します。

  • [ @name = ] 'name'
    コレクション アイテムの名前を指定します。name のデータ型は sysname で、空の文字列または NULL を指定できません。

    name は一意である必要があります。現在のコレクション アイテムの名前の一覧については、syscollector_collection_items システム ビューにクエリを実行します。

  • [ @frequency = ] frequency
    このコレクション アイテムによってデータを収集する頻度を秒単位で指定します。frequency のデータ型は int で、既定値は 5 です。指定できる最小値は 5 秒です。

    コレクション セットが非キャッシュ モードに設定されている場合、このモードではコレクション セットに指定されたスケジュールでデータ収集とアップロードが行われるため、頻度は無視されます。コレクション セットのコレクション モードを表示するには、syscollector_collection_sets システム ビューにクエリを実行します。

  • [ @parameters = ] 'parameters'
    コレクター型の入力パラメーターを指定します。parameters のデータ型は xml で、既定値は NULL です。parameters スキーマはコレクター型のパラメーター スキーマと一致する必要があります。

  • [ @collection_item_id = ] collection_item_id
    コレクション セット項目を識別する一意な識別子を指定します。collection_item_id のデータ型は int で、OUTPUT を持ちます。

リターン コード値

0 (成功) または 1 (失敗)

説明

sp_syscollector_create_collection_item は、msdb システム データベースのコンテキストで実行する必要があります。

コレクション アイテムを追加するコレクション セットは、コレクション アイテムを作成する前に停止する必要があります。コレクション アイテムは、システム コレクション セットには追加できません。

権限

このプロシージャを実行するには、(EXECUTE 権限を持つ) dc_admin 固定データベース ロールのメンバーシップが必要です。

次の例では、コレクション型 Generic T-SQL Query Collector Type に基づくコレクション アイテムを作成し、そのコレクション アイテムを Simple collection set test 2 という名前のコレクション セットに追加します。指定したコレクション セットを作成するには、sp_syscollector_create_collection_set (Transact-SQL) の例 B を実行します。

USE msdb;
GO
DECLARE @collection_item_id int;
DECLARE @collection_set_id int = (SELECT collection_set_id 
                                  FROM syscollector_collection_sets
                                  WHERE name = N'Simple collection set test 2');
DECLARE @collector_type_uid uniqueidentifier = 
    (SELECT collector_type_uid
     FROM syscollector_collector_types
     WHERE name = N'Generic T-SQL Query Collector Type');
DECLARE @params xml = 
    CONVERT(xml, N'<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
            <Query>
                <Value>SELECT * FROM sys.objects</Value>
                <OutputTable>MyOutputTable</OutputTable>
            </Query>
            <Databases> 
                <Database> UseSystemDatabases = "true" 
                           UseUserDatabases = "true"
                </Database>
            </Databases>
         </ns:TSQLQueryCollector>');

EXEC sp_syscollector_create_collection_item
    @collection_set_id = @collection_set_id,
    @collector_type_uid = @collector_type_uid,
    @name = 'My custom TSQL query collector item',
    @frequency = 6000,
    @parameters = @params,
    @collection_item_id = @collection_item_id OUTPUT;