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(失败)

注释

必须在 msdb 系统数据库的上下文中运行 sp_syscollector_create_collection_item。

必须先停止要向其添加收集项的收集组,然后才能创建收集项。 不能向系统收集组添加收集项。

权限

要求具有 dc_admin 固定数据库角色(具有 EXECUTE 权限)的成员身份才能执行此过程。

示例

下面的示例根据收集类型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;

请参阅

参考

系统存储过程 (Transact-SQL)

sp_syscollector_update_collection_item (Transact-SQL)

sp_syscollector_delete_collection_item (Transact-SQL)

syscollector_collector_types (Transact-SQL)

sp_syscollector_create_collection_set (Transact-SQL)

syscollector_collection_items (Transact-SQL)

概念

数据收集