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


Добавление элемента коллекции в набор коллекций (Transact-SQL)

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

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

Выполните следующие действия с помощью Редактор запросов в SQL Server Management Studio.

Добавление элемента сбора в набор элементов сбора

  1. Прекратите работу набора коллекций, к которому нужно добавить элемент, выполнив хранимую процедуру sp_syscollector_stop_collection_set. Например, чтобы остановить набор сбора с именем «Тестовый набор сбора», выполните следующие инструкции:

    USE msdb;
    GO
    
    DECLARE @csid INT;
    
    SELECT @csid = collection_set_id
    FROM syscollector_collection_sets
    WHERE name = 'Test Collection Set';
    
    SELECT @csid;
    
    EXEC dbo.sp_syscollector_stop_collection_set @collection_set_id = @csid;
    

    Примечание.

    Вы также можете остановить набор данных с помощью Обозревателя объектов в SQL Server Management Studio. Дополнительные сведения см. в разделе "Запуск или остановка набора коллекций".

  2. Объявите коллекцию, в которую нужно добавить элемент коллекции. В следующем коде приведён пример объявления идентификатора набора.

    DECLARE @collection_set_id_1 INT;
    
    SELECT @collection_set_id_1 = collection_set_id
    FROM msdb.dbo.syscollector_collection_sets
    WHERE name = N'Test Collection Set';-- name of collection set
    
  3. Объявите тип сборщика. В следующем коде представлен пример, как объявить тип коллектора «Общий запрос T-SQL».

    DECLARE @collector_type_uid_1 UNIQUEIDENTIFIER;
    
    SELECT @collector_type_uid_1 = collector_type_uid
    FROM msdb.dbo.syscollector_collector_types
    WHERE name = N'Generic T-SQL Query Collector Type';
    

    С помощью приведенного ниже кода можно получить список установленных типов сборщика:

    USE msdb;
    GO
    
    SELECT * FROM syscollector_collector_types;
    GO
    
  4. Выполните хранимую процедуру sp_syscollector_create_collection_item, чтобы создать элемент коллекции. Необходимо определить схему для элемента коллекции, чтобы он соответствовал требуемой схеме для сборщика нужного типа. В следующем примере используется схема ввода «Общий запрос T-SQL».

    DECLARE @collection_item_id INT;
    
    EXEC msdb.dbo.sp_syscollector_create_collection_item @name = N'OS Wait Stats', --name of collection item
        @parameters = N'
            <ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
             <Query>
              <Value>select * from sys.dm_os_wait_stats</Value>
              <OutputTable>os_wait_stats</OutputTable>
            </Query>
            </ns:TSQLQueryCollector>',
    @collection_item_id = @collection_item_id OUTPUT,
    @frequency = 60,
    @collection_set_id = @collection_set_id_1, --- Provides the collection set ID number
    @collector_type_uid = @collector_type_uid_1;-- Provides the collector type UID
    
    SELECT @collection_item_id;
    
  5. Перед запуском обновленного комплекта коллекции выполните следующий запрос, чтобы убедиться, что новый элемент коллекции был создан.

    USE msdb;
    GO
    SELECT * from syscollector_collection_sets;
    SELECT * from syscollector_collection_items;
    GO
    

    Коллекционные наборы и их элементы коллекции отображаются на вкладке Результаты.