Share via


Registrazione dell'agente di raccolta dati

L'agente di raccolta dati acquisisce e registra diversi tipi di informazioni per ogni set di raccolta e per i propri pacchetti di raccolta. Tali informazioni, scritte in tabelle msdb, descrivono lo stato corrente del set di raccolta e il risultato dell'esecuzione dei pacchetti. Queste tabelle di log forniscono anche informazioni statistiche su ogni set di raccolta e sui relativi pacchetti. Per il monitoraggio e l'analisi della raccolta dati, sono disponibili i seguenti tipi di informazioni:

  • I set di raccolta attualmente in esecuzione.

  • La cronologia di esecuzione di un set di raccolta.

  • Per un set di raccolta specificato, la gerarchia di pacchetti eseguita come parte di tale raccolta.

  • Per ogni pacchetto, tempi di avvio e arresto, durata, stato di completamento e numero di righe elaborate.

  • Se l'esecuzione di un set di raccolta non è riuscita, il pacchetto ha provocato l'errore.

  • Se l'esecuzione di un pacchetto non è riuscita, il componente in quel pacchetto che non è riuscito insieme al messaggio di errore.

  • Per ogni pacchetto, la sequenza di eventi del log che il pacchetto ha registrato per ogni esecuzione.

Ruolo di SSIS nella registrazione dell'agente di raccolta dati

L'agente di raccolta dati implementa la registrazione utilizzando stored procedure ed esecuzione dell'attività SQL Server 2008 Integration Services (SSIS) e caratteristiche di registrazione. Tali caratteristiche creano un riepilogo e voci di log dettagliate per i provider di log quando si verificano eventi runtime. Per ulteriori informazioni, vedere Implementazione della registrazione nei pacchetti.

Gli eventi registrati forniscono punti di riferimento per tutte le fasi di esecuzione del programma. Di ogni record dell'evento è eseguito il mapping rispetto all'ID di esecuzione del pacchetto sotto cui è stata eseguita un'attività. L'agente di raccolta dati esegue il mapping di tali ID rispetto ai pacchetti specifici per la raccolta e il caricamento dei dati.

Set di raccolta e registrazione pacchetto

L'architettura e la gestione dati di alto livello per la registrazione dell'agente di raccolta dati sono descritti di seguito:

  • Le informazioni del set di raccolta, fornite in fase di esecuzione dall'agente di raccolta dati, sono archiviate in una tabella dell'agente di raccolta dati utilizzando una stored procedure. A ogni record viene assegnato un log_id utilizzato per fare riferimento alle voci della tabella ed eseguire il mapping di un pacchetto rispetto all'ID di esecuzione SSIS.

  • Le informazioni sul pacchetto vengono registrate all'inizio e alla fine di ogni esecuzione del pacchetto. Tale registrazione viene effettuata eseguendo un'attività Transact-SQL all'inizio e alla fine del flusso di controllo per ogni pacchetto.

    • Mentre il pacchetto è in esecuzione, aggiornamenti periodici ed aggiornamenti statistici vengono effettuati dall'agente di raccolta dati. Ogni pacchetto ha un'attività del gestore errori globale (implementata utilizzando eventi del pacchetto SSIS) che registra gli eventi di errore. Ciò avviene inserendo l'attività "Esegui SQL" di SSIS nel flusso di controllo per fornire la registrazione eventi necessaria richiesta. Per ulteriori informazioni, vedere Attività Esegui SQL di SSIS e Elementi del flusso di controllo.

    • Gli eventi generati da SSIS vengono registrati nella tabella definita da SSIS, ovvero dbo.sysssislog, utilizzando la stored procedure dbo.sp_ssis_addlogentry.

  • Quando il pacchetto termina viene registrato un evento di esito positivo o negativo.

  • Quando il set di raccolta si arresta, tale informazione viene registrata. Come avviene per i pacchetti, anche in questo caso viene registrato un evento di esito positivo o negativo.

I dati generati dall'agente di raccolta dati vengono archiviati nella tabella dbo.syscollector_execution_log_internal, unita in join a dbo.sysssislog. In questo modo si ottiene una vista completa dell'esecuzione dei set di raccolta. Queste tabelle vengono descritte in modo più dettagliato nelle sezioni seguenti.

Tabelle di log

Le tabelle di log e le rispettive colonne vengono elencate nella tabella seguente. Nella sezione "Accesso e visualizzazione dei dati di log", più avanti in questo argomento, vengono descritte le funzioni e le viste che è possibile utilizzare per ottenere informazioni dettagliata sui tipi di dati e sul contenuto di una tabella di log.

Nome tabella

Descrizione

syscollector_execution_log_internal

Tabella dell'agente di raccolta dati per l'archiviazione di informazioni di esecuzione. Contiene le colonne seguenti:

  • log_id

  • parent_log_id

  • collection_set_id

  • collection_item_id

  • start_time

  • last_iteration_time

  • finish_time

  • runtime_execution_mode

  • status

  • operator

  • package_id

  • package_execution_id

  • failure_message

syscollector_execution_stats_internal

Tabella dell'agente di raccolta dati per l'archiviazione di informazioni statistiche. Contiene le colonne seguenti:

  • log_id

  • task_name

  • execution_row_count_in

  • execution_row_count_out

  • execution_row_count_errors

  • execution_time_ms

  • log_time

sysssislog

Tabella definita da SSIS per informazioni sugli eventi, ad esempio l'avvio di un set di raccolta o di un pacchetto, nonché per avvisi o errori. Per ulteriori informazioni, vedere sysssislog (Transact-SQL).

Nota importanteImportante

Non modificare i dati nelle tabelle di log. Per inserire, aggiornare ed eliminare dati in queste tabelle, è necessario attenersi a procedure specifiche, che vengono applicate dalle stored procedure. I nomi e le definizioni delle tabelle possono cambiare in fase di esecuzione, cambiano quando si aggiorna l'applicazione e potrebbero cambiare nelle versioni future. Per accedere ai dati delle istanze e delle applicazioni, anziché utilizzare direttamente le tabelle, avvalersi delle stored procedure e delle viste documentate fornite con l'agente di raccolta dati.

Memorizzazione log

Un log del set di raccolta viene conservato finché vengono conservati i dati corrispondenti nel data warehouse di gestione. Ciò viene definito dal periodo di mantenimento, che è possibile configurare per ogni set di raccolta. Alla scadenza di tale periodo, i dati vengono eliminati dal log tramite un processo di SQL Server Agent.

Livelli di registrazione

Vengono forniti tre livelli di registrazione per gestire i diversi scenari di raccolta che potrebbero verificarsi. In questo modo saranno disponibili i dati necessari per la risoluzione dei problemi di un set di raccolta o di un pacchetto, se richiesto. È possibile impostare livelli di registrazione diversi per ogni set di raccolta a seconda delle proprie necessità di registrazione.

Nella tabella seguente vengono descritte le opzioni di registrazione disponibili.

Livello

Descrizione

0

Livello di registrazione predefinito. Registra informazioni di esecuzione e i seguenti eventi SSIS:

  • Avvio o arresto di un set di raccolta

  • Avvio o arresto di un pacchetto

  • Informazioni sull'errore

1

Combina il livello di registrazione 0 e gli eventi seguenti:

  • Statistiche di esecuzione

  • Stato di avanzamento della raccolta in esecuzione continua

  • Eventi di avviso di SSIS

2

Combina il livello di registrazione 1 e gli eventi SSIS dettagliati.

Il livello di registrazione predefinito è 0. Tale livello viene utilizzato per evitare una quantità eccessiva di messaggi di log, ad esempio gli eventi di avviso generati dal livello di registrazione 1. Tali eventi di avviso possono includere consigli sulle prestazioni provenienti da SSIS che l'utente non può correggere.

Il livello 2 fornisce informazioni aggiuntive sugli eventi che possono essere utilizzate per la risoluzione avanzata dei problemi.

Eventi SSIS

Ogni pacchetto dell'agente di raccolta dati utilizza il provider di eventi SQL Server. Gli eventi descritti nella tabella seguente sono registrati e disponibili per la visualizzazione.

Nome evento

Livello di registrazione

Descrizione

Inizio pacchetto

0

Evento standard che viene generato sempre. Tale evento non può essere disabilitato.

Fine pacchetto

0

Evento standard che viene generato sempre. Tale evento non può essere disabilitato.

OnError

0

Evento di errore.

OnWarning

1

Evento di avviso.

PipelineBufferLeak

2

Fornisce informazioni su eventuali componenti che hanno mantenuto attivi i buffer dopo l'arresto di Gestione buffer. Se vi è ancora un buffer attivo, le risorse del buffer non sono state rilasciate e potrebbero verificarsi perdite di memoria. Nella voce di log vengono indicati il nome del componente e l'ID del buffer.

PipelineExecutionPlan

2

Specifica il piano di esecuzione del flusso di dati. Il piano di esecuzione offre informazioni sulle modalità di invio dei buffer ai componenti. In combinazione con la voce di log PipelineExecutionTrees, queste informazioni descrivono ciò che si verifica in un'attività Flusso di dati.

PipelineExecutionTrees

2

Specifica gli alberi di esecuzione del layout nel flusso di dati. L'utilità di pianificazione del motore flusso di dati utilizza tali alberi per compilare il piano di esecuzione del flusso di dati.

PipelineInitialization

2

Fornisce le informazioni di inizializzazione relative all'attività, che comprendono le directory da utilizzare per l'archiviazione temporanea dei dati BLOB, le dimensioni predefinite del buffer e il numero di righe in un buffer. A seconda della configurazione dell'attività Flusso di dati, è possibile che vengano scritte più voci di log.

ExecuteSQLExecutingQuery

2

Offre informazioni sulle fasi di esecuzione dell'istruzione SQL. Vengono scritte voci di log quando l'attività si connette al database, quando inizia a preparare l'istruzione SQL e al termine dell'esecuzione dell'istruzione SQL. La voce di log per la fase di preparazione include l'istruzione SQL utilizzata dall'attività.

FileSystemOperation

2

Indica l'operazione eseguita dall'attività. Questa voce di log viene scritta all'inizio dell'operazione di file system e comprende informazioni sull'origine e sulla destinazione.

ExecuteProcessExecutingProcess

2

Offre informazioni sui processi che l'attività dovrà eseguire.

Vengono scritte due voci di log. Una contiene informazioni sul nome e sulla posizione del file eseguibile eseguito dall'attività, l'altra registra l'uscita dal file eseguibile.

Accesso e visualizzazione dei dati di log

È possibile accedere ai dati e visualizzarli a livello di programmazione utilizzando le funzioni e le viste disponibili. È anche possibile utilizzare Visualizzatore file di log in Esplora oggetti di Management Studio per visualizzare i log. Per ulteriori informazioni, vedere Procedura: Visualizzazione dei log degli insiemi di raccolta.

La tabella seguente descrive le funzioni e le viste che è possibile utilizzare per l'accesso a dati del log.

Nome

Descrizione

fn_syscollector_get_execution_details (Transact-SQL)

Restituisce informazioni dettagliate sui log di set di raccolta e pacchetti per i log_id richiesti e su tutte le voci di log dipendenti.

fn_syscollector_get_execution_stats (Transact-SQL)

Restituisce un set di statistiche per il log_id richiesto. Le statistiche vengono calcolate dalle voci nella vista syscollector_execution_stats.

syscollector_execution_log (Transact-SQL)

Offre una vista della tabella syscollector_execution_log_internal.

syscollector_execution_log_full (Transact-SQL)

Offre una vista dettagliata della tabella syscollector_execution_log_internal e mostra le voci di log in una gerarchia che inizia dalla voce di log di raccolta di livello superiore e attraversa tutti i pacchetti che sono stati eseguiti come parte dell'esecuzione di un set di raccolta.

syscollector_execution_stats (Transact-SQL)

Offre una vista 1:1 della tabella syscollector_execution_stats_internal.