Creare un set di raccolta personalizzato che usa il tipo agente di raccolta Query T-SQL genericoCreate Custom Collection Set - Generic T-SQL Query Collector Type

È possibile creare un set di raccolta personalizzato con elementi della raccolta che utilizzano il tipo di agente di raccolta Query T-SQL generico tramite le stored procedure fornite con l'agente di raccolta dati.You can create a custom collection set with collection items that use the Generic T-SQL Query collector type by using the stored procedures that are provided with the data collector. Il completamento di questa attività comporta l'utilizzo dell'Editor di query in SQL Server Management StudioSQL Server Management Studio per eseguire le procedure descritte di seguito:Accomplishing this task involves using Query Editor in SQL Server Management StudioSQL Server Management Studio to carry out the following procedures:

  • Configurazione delle pianificazioni di caricamento.Configure upload schedules.

  • Definizione e creazione del set di raccolta.Define and create the collection set.

  • Definizione e creazione di un elemento della raccolta.Define and create a collection item.

  • Verifica dell'esistenza del set di raccolta e degli elementi della raccolta.Verify that the collection set and collection items exist.

Nota

Prima di creare un set di raccolta personalizzato è necessario configurare i parametri della raccolta dati.Before you create a custom collection set, you must configure data collection parameters. Per altre informazioni, vedere Configurazione dei parametri per la raccolta dati (Transact-SQL).For more information, see Configure Data Collection Parameters (Transact-SQL).

Definizione e creazione del set di raccoltaDefine and create the collection set

  1. Definire un nuovo set di raccolta utilizzando la stored procedure sp_syscollector_create_collection_set.Define a new collection set using the sp_syscollector_create_collection_set stored procedure.

    USE msdb;  
    DECLARE @collection_set_id int;  
    DECLARE @collection_set_uid uniqueidentifier;  
    EXEC sp_syscollector_create_collection_set   
        @name=N'DMV Test 1',   
        @collection_mode=0,   
        @description=N'This is a test collection set',   
        @logging_level=1,   
        @days_until_expiration=14,   
        @schedule_name=N'CollectorSchedule_Every_15min',   
        @collection_set_id=@collection_set_id OUTPUT,   
        @collection_set_uid=@collection_set_uid OUTPUT;  
    SELECT @collection_set_id, @collection_set_uid;  
    

    È possibile impostare la modalità di raccolta su 0 (in cache) o su 1 (non in cache).The collection mode can be set to either 0 (cached) or to 1 (non-cached).

    Il livello di registrazione può essere impostato su 0, 1 o 2.The logging level can be set to 0, 1 or 2.

    Le seguenti pianificazioni preconfigurate vengono fornite con l'agente di raccolta dati:The following preconfigured schedules are provided with the data collector:

    • CollectorSchedule_Every_5minCollectorSchedule_Every_5min

    • CollectorSchedule_Every_10minCollectorSchedule_Every_10min

    • CollectorSchedule_Every_15minCollectorSchedule_Every_15min

    • CollectorSchedule_Every_30minCollectorSchedule_Every_30min

    • CollectorSchedule_Every_60minCollectorSchedule_Every_60min

    • CollectorSchedule_Every_6hCollectorSchedule_Every_6h

      Se non si desidera utilizzare una delle pianificazioni fornite è possibile creare una nuova pianificazione e utilizzarla per il set di raccolta.If you do not want to use one of the schedules that are provided, you can create a new schedule and use it for the collection set. Per altre informazioni, vedere Creare e collegare le pianificazioni ai processi.For more information, see Create and Attach Schedules to Jobs.

Definizione e creazione di un elemento della raccoltaDefine and create a collection item

  1. Poiché il nuovo elemento della raccolta è basato su un tipo di agente di raccolta generico già installato, è possibile eseguire il codice seguente per impostare il GUID in modo che corrisponda al tipo di agente di raccolta Query T-SQL generico.Because the new collection item is based on a generic collector type that is already installed, you can run the following code to set the GUID to correspond to the Generic T-SQL Query collector type.

    DECLARE @collector_type_uid uniqueidentifier;  
    SELECT @collector_type_uid = collector_type_uid FROM [msdb].[dbo].[syscollector_collector_types]   
    WHERE name = N'Generic T-SQL Query Collector Type';  
    DECLARE @collection_item_id int;  
    
  2. Utilizzare la stored procedure sp_syscollector_create_collection_item per creare l'elemento della raccolta.Use the sp_syscollector_create_collection_item stored procedure to create the collection item. Dichiarare lo schema per l'elemento della raccolta in modo che ne venga eseguito il mapping allo schema richiesto per il tipo di agente di raccolta Query T-SQL generico.Declare the schema for the collection item so it maps to the schema that is required for the Generic T-SQL Query collector type.

    EXEC sp_syscollector_create_collection_item   
        @name=N'Query Stats - Test 1',   
        @parameters=N'  
            <ns:TSQLQueryCollector xmlns:ns="DataCollectorType">  
            <Query>  
            <Value>SELECT * FROM sys.dm_exec_query_stats</Value>  
            <OutputTable>dm_exec_query_stats</OutputTable>  
            </Query>  
            </ns:TSQLQueryCollector>',   
        @collection_item_id=@collection_item_id OUTPUT,   
        @frequency=5,   
        @collection_set_id=@collection_set_id,   
        @collector_type_uid=@collector_type_uid;  
    SELECT @collection_item_id;  
    

Verifica dell'esistenza del nuovo set di raccolta a dell'elemento della raccoltaVerify that the new collection set and collection item exist

  1. Prima di avviare il nuovo set di raccolta, eseguire la query seguente per verificare che il nuovo set di raccolta e l'elemento della raccolta siano stati creati.Before starting the new collection set, run the following query to verify that the new collection set and its collection item have been created.

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

    È anche possibile effettuare un controllo visivo in SQL Server Management StudioSQL Server Management Studio.You can also do a visual check in SQL Server Management StudioSQL Server Management Studio. In Esplora oggetti espandere il nodo Gestione , quindi Raccolta dati.In Object Explorer, expand the Management node, and then expand Data Collection. Verrà visualizzato il nuovo set di raccolta.The new collection set will be displayed. L'icona con il cerchio rosso per il set di raccolta indica che quest'ultimo è arrestato.The red circle icon for the collection set indicates that the collection set is stopped.

EsempioExample

Nell'esempio di codice seguente vengono combinati gli esempi documentati nei passaggi precedenti.The following code sample combines the examples that are documented in the previous steps. Si noti che la frequenza di raccolta impostata per l'elemento della raccolta (5 secondi) viene ignorata, poiché la modalità di raccolta del set di raccolta è impostata su 0 (modalità cache).Note that the collection frequency that is set for the collection item (5 seconds) is ignored because the collection set collection mode is set to 0, which is cached mode. Per altre informazioni, vedere Data Collection.For more information, see Data Collection.

USE msdb;  

DECLARE @collection_set_id int;  
DECLARE @collection_set_uid uniqueidentifier  

EXEC dbo.sp_syscollector_create_collection_set  
    @name = N'DMV Stats Test 1',  
    @collection_mode = 0,  
    @description = N'This is a test collection set',  
    @logging_level=1,  
    @days_until_expiration = 14,  
    @schedule_name=N'CollectorSchedule_Every_15min',  
    @collection_set_id = @collection_set_id OUTPUT,  
    @collection_set_uid = @collection_set_uid OUTPUT;  
SELECT @collection_set_id,@collection_set_uid;  

DECLARE @collector_type_uid uniqueidentifier;  
SELECT @collector_type_uid = collector_type_uid FROM syscollector_collector_types   
WHERE name = N'Generic T-SQL Query Collector Type';  

DECLARE @collection_item_id int;  
EXEC sp_syscollector_create_collection_item  
@name= N'Query Stats - Test 1',  
@parameters=N'  
<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">  
<Query>  
  <Value>select * from sys.dm_exec_query_stats</Value>  
  <OutputTable>dm_exec_query_stats</OutputTable>  
</Query>  
 </ns:TSQLQueryCollector>',  
    @collection_item_id = @collection_item_id OUTPUT,  
    @frequency = 5, -- This parameter is ignored in cached mode  
    @collection_set_id = @collection_set_id,  
    @collector_type_uid = @collector_type_uid;  
SELECT @collection_item_id;  

GO  

Vedere ancheSee Also

Stored procedure dell'agente di raccolta dati (Transact-SQL) Data Collector Stored Procedures (Transact-SQL)
Gestione pianificazioni Manage Schedules
Avviare o arrestare un set di raccolta Start or Stop a Collection Set