Поделиться через


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.

Набор сбора, в который добавляется элемент сбора, необходимо остановить перед созданием элемента сбора. Добавлять элементы сбора в системные наборы сбора невозможно.

Разрешения

Для выполнения этой процедуры требуется членство в предопределенной роли базы данных dc_admin (с разрешением EXECUTE).

Примеры

В следующем примере элемент сбора создается на основе типа сборщика Generic T-SQL Query Collector Type и добавляется в набор сбора Simple collection set test 2. Чтобы создать указанный набор сбора, выполните пример Б в sp_syscollector_create_collection_set (Transact-SQL).

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;