Condividi tramite


sp_syscollector_create_collection_item (Transact-SQL)

Crea un elemento della raccolta in un insieme di raccolta definito dall'utente. Un elemento della raccolta definisce i dati da raccogliere e la frequenza di raccolta.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • [ @collection\_set\_id = ] collection_set_id
    Identificatore univoco locale dell'insieme di raccolta. collection_set_id è di tipo int.

  • [ @collector\_type\_uid = ] 'collector_type_uid'
    GUID che identifica il tipo di agente di raccolta da utilizzare per questo elemento. collector_type_uid è di tipo uniqueidentifier e non prevede alcun valore predefinito. Per un elenco di tipi di agenti di raccolta, eseguire una query sulla vista di sistema syscollector_collector_types.

  • [ @name = ] 'name'
    Nome dell'elemento della raccolta. name è di tipo sysname e non può essere una stringa vuota o NULL.

    name deve essere univoco. Per un elenco dei nomi degli elementi della raccolta correnti, eseguire una query sulla vista di sistema syscollector_collection_items.

  • [ @frequency = ] frequency
    Utilizzato per specificare la frequenza di raccolta dei dati da parte di questo elemento della raccolta, espressa in secondi. frequency è di tipo int e il valore predefinito è 5. Il valore minimo che è possibile specificare è 5 secondi.

    Se l'insieme di raccolta è impostato sulla modalità non in cache, la frequenza viene ignorata in quanto in questa modalità la raccolta e il caricamento dei dati vengono eseguiti in base alla pianificazione specificata per l'insieme. Per visualizzare la modalità di raccolta dell'insieme di raccolta, eseguire una query sulla vista di sistema syscollector_collection_sets.

  • [ @parameters = ] 'parameters'
    Parametri di input per il tipo di agente di raccolta. parameters è di tipo xml e il valore predefinito è NULL. Lo schema parameters deve corrispondere allo schema dei parametri per il tipo di agente di raccolta.

  • [ @collection\_item\_id = ] collection_item_id
    Identificatore univoco che identifica l'elemento dell'insieme di raccolta. collection_item_id è di tipo int e ha OUTPUT.

Valori dei codici restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

È necessario eseguire sp_syscollector_create_collection_item nel contesto del database di sistema msdb.

L'insieme di raccolta al quale viene aggiunto l'elemento deve essere interrotto prima della creazione dell'elemento della raccolta. Non è possibile aggiungere elementi della raccolta agli insiemi di raccolta di sistema.

Autorizzazioni

Per eseguire questa procedura, è richiesta l'appartenenza al ruolo predefinito del database dc_admin (con autorizzazione EXECUTE) .

Esempi

Nell'esempio seguente viene creato un elemento della raccolta basato sul tipo di raccolta Generic T-SQL Query Collector Type e successivamente tale elemento viene aggiunto all'insieme di raccolta denominato Simple collection set test 2. Per creare l'insieme di raccolta specificato, eseguire l'esempio B in 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;