sp_syscollector_update_collection_item (Transact-SQL)

適用対象:SQL Server

ユーザー定義のコレクション アイテムのプロパティまたは名前の変更に使用されます。

Transact-SQL 構文表記規則

構文

sp_syscollector_update_collection_item
    [ [ @collection_item_id = ] collection_item_id ]
    [ , [ @name = ] N'name' ]
    [ , [ @new_name = ] N'new_name' ]
    [ , [ @frequency = ] frequency ]
    [ , [ @parameters = ] N'parameters' ]
[ ; ]

引数

[ @collection_item_id = ] collection_item_id

コレクション項目を識別する一意識別子。 @collection_item_idは int で、既定値は NULL. @nameの場合、@collection_item_idには値が必要ですNULL

[ @name = ] N'name'

コレクション アイテムの名前です。 @nameは sysname で、既定値は NULL. @collection_item_idが の場合、@nameには値が必要ですNULL

[ @new_name = ] N'new_name'

コレクション 項目の新しい名前。 @new_nameは sysname で、既定値は NULL、使用されている場合は空の文字列にすることはできません。

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

[ @frequency = ] frequency

このコレクション 項目によってデータが収集される頻度 (秒単位)。 @frequencyは int で、既定値は5指定できる最小値です。

[ @parameters = ] N'parameters'

コレクション アイテムの入力パラメーターを指定します。 @parametersは xml で、既定値は空の文字列です。 @parameters スキーマは、コレクター型のパラメーター スキーマと一致する必要があります。

リターン コードの値

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

解説

コレクション セットが非キャッシュ モードに設定されている場合、このモードではコレクション セットに指定されたスケジュールでデータ収集とアップロードが行われるため、頻度を変更しても無視されます。 コレクション セットの状態を表示するには、次のクエリを実行します。 <collection_item_id> は、更新するコレクション アイテムの ID に置き換えてください。

USE msdb;
GO

SELECT cs.collection_set_id,
    collection_set_uid,
    cs.name,
    'is running' = CASE
        WHEN is_running = 0
            THEN 'No'
        ELSE 'Yes'
        END,
    'cache mode' = CASE
        WHEN collection_mode = 0
            THEN 'Cached mode'
        ELSE 'Non-cached mode'
        END
FROM syscollector_collection_sets AS cs
INNER JOIN syscollector_collection_items AS ci
    ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = < collection_item_id >;
GO

アクセス許可

このプロシージャを実行するには、 dc_admin または dc_operator (EXECUTE 権限を持つ) 固定データベース ロールのメンバーシップが必要です。 このストアド プロシージャdc_operator実行できますが、このロールのメンバーは、変更できるプロパティに制限されます。 次のプロパティは、dc_adminによってのみ変更できます。

  • @new_name
  • @parameters

次の例は、sp_syscollector_create_collection_item (Transact-SQL) で定義された例で作成されたコレクション項目に基づいています。

A. コレクションの頻度を変更する

次の例では、指定したコレクション アイテムの収集頻度を変更します。

USE msdb;
GO

EXEC sp_syscollector_update_collection_item
    @name = N'My custom T-SQL query collector item',
    @frequency = 3000;
GO

B. コレクション項目の名前を変更する

次の例では、コレクション アイテムの名前を変更します。

USE msdb;
GO

EXEC sp_syscollector_update_collection_item
    @name = N'My custom T-SQL query collector item',
    @new_name = N'My modified T-SQL item';
GO

C: コレクション 項目のパラメーターを変更する

次の例では、コレクション 項目に関連付けられているパラメーターを変更します。 <Value> 属性内で定義されているステートメントを変更し、UseSystemDatabases 属性を false に設定します。 この項目の現在のパラメーターを表示するには、システム ビューでパラメーター列に対してクエリを syscollector_collection_items 実行します。 @collection_item_idの値を変更する必要がある場合があります。

USE msdb;
GO
EXEC sp_syscollector_update_collection_item
@collection_item_id = 9,
@parameters = '
    <ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
        <Query>
            <Value>SELECT * FROM sys.dm_db_index_usage_stats</Value>
            <OutputTable>MyOutputTable</OutputTable>
        </Query>
        <Databases>
            <Database> UseSystemDatabases = "false"
                       UseUserDatabases = "true"</Database>
        </Databases>
    </ns:TSQLQueryCollector>';
GO