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


sp_syscollector_create_collection_item (Transact-SQL)

Область применения: SQL Server

Создает элемент сбора в определяемом пользователем наборе сбора. Элемент сбора определяет, какие данные должны собираться, а также частоту их сбора.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

[ @collection_set_id = ] collection_set_id

Уникальный локальный идентификатор набора коллекций. @collection_set_id не используется без значения по умолчанию.

[ @collector_type_uid = ] 'collector_type_uid'

GUID, определяющий тип сборщика, используемый для этого элемента. @collector_type_uid является уникальным идентификатором без значения по умолчанию. Для списка типов сборщиков запросите системное syscollector_collector_types представление.

[ @name = ] N'name'

Имя элемента сбора. @name является sysname и не может быть пустой строкой или NULL.

@name должен быть уникальным. Чтобы получить список текущих имен элементов коллекции, выполните запрос к системным представлениям syscollector_collection_items .

[ @frequency = ] частота

Используется для указания (в секундах) частоты сбора данных. @frequency имеет значение int с значением по умолчанию5. Минимальное значение, которое можно указать, составляет 5 секунд.

Если набор коллекций имеет не кэшированный режим, частота игнорируется, так как этот режим вызывает сбор данных и отправку данных по расписанию, указанному для набора коллекций. Чтобы просмотреть режим сбора набора, запросите системное представление syscollector_collection_sets (Transact-SQL).

[ @parameters = ] N'parameters'

Входные параметры для типа сборщика. @parameters имеет значение XML с значением по умолчаниюNULL. Схема @parameters должна соответствовать схеме параметров типа сборщика.

[ @collection_item_id = ] collection_item_id OUTPUT

Уникальный идентификатор, определяющий элемент набора коллекций. @collection_item_id — это параметр OUTPUT типа int.

Значения кода возврата

0 (успешно) или 1 (сбой).

Замечания

sp_syscollector_create_collection_item должен выполняться в контексте msdb системной базы данных.

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

Разрешения

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

Примеры

В следующем примере элемент сбора создается на основе типа сборщика Generic T-SQL Query Collector Type и добавляется в набор сбора Simple collection set test 2. Чтобы создать указанный набор коллекций, выполните пример B в 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 T-SQL query collector item',
    @frequency = 6000,
    @parameters = @params,
    @collection_item_id = @collection_item_id OUTPUT;