Condividi tramite


Attività Esegui pacchetto

Data aggiornamento: 5 dicembre 2005

L'attività Esegui pacchetto estende le funzionalità aziendali di Integration Services consentendo ai pacchetti di eseguire altri pacchetti nell'ambito di un flusso di lavoro.

È possibile utilizzare l'attività Esegui pacchetto per gli scopi seguenti:

  • Suddivisione del flusso di lavoro di pacchetti complessi. Questa attività consente di suddividere il flusso di lavoro in più pacchetti, più semplici da leggere, testare e gestire. Se ad esempio si caricano dati in uno schema a stella, sarà possibile creare un pacchetto a parte per il popolamento delle singole dimensioni e della tabella dei fatti.
  • Riutilizzo di parti di pacchetti. È possibile riutilizzare parti del flusso di lavoro di un pacchetto in altri pacchetti. È ad esempio possibile creare un modulo di estrazione dati che può essere chiamato da pacchetti diversi. Ogni pacchetto che chiama il modulo di estrazione può quindi eseguire operazioni diverse di ripulitura, filtraggio o aggregazione dei dati.
  • Raggruppamento di unità di lavoro. Le unità di lavoro possono essere incapsulate in pacchetti separati e partecipare come componenti transazionali al flusso di lavoro di un pacchetto padre. Il pacchetto padre esegue ad esempio i pacchetti accessori e, in base all'esito positivo o negativo dell'esecuzione di questi ultimi, esegue il commit o il rollback della transazione.
  • Controllo della protezione dei pacchetti. Gli autori dei pacchetti hanno l'esigenza di accedere solo a una parte di una soluzione composta da più pacchetti. Suddividendo un pacchetto in più pacchetti è possibile offrire un livello di protezione superiore, perché a ogni autore è possibile concedere l'accesso ai soli pacchetti interessati.

Un pacchetto che esegue altri pacchetti è detto in genere pacchetto padre, mentre i pacchetti eseguiti dal flusso di lavoro di un pacchetto padre sono detti pacchetti figlio.

L'attività Esegui pacchetto può eseguire sia pacchetti archiviati nel database msdb di SQL Server che pacchetti archiviati nel file system. L'attività utilizza una gestione connessione OLE DB per connettersi a SQL Server e una gestione connessione file per l'accesso al file system. Per ulteriori informazioni, vedere Gestione connessione OLE DB e Gestione connessione file flat.

Poiché l'attività Esegui pacchetto consente anche di eseguire un piano di manutenzione database, è possibile gestire sia pacchetti SSIS che piani di manutenzione database nella stessa soluzione di Integration Services. Un piano di manutenzione database è simile a un pacchetto SSIS, ma può includere solo attività di manutenzione database ed è sempre archiviato in msdb. Per ulteriori informazioni, vedere Manutenzione di database (Motore di database) e Attività di manutenzione.

Se si sceglie un pacchetto archiviato nel file system, sarà necessario specificare il nome e il percorso del pacchetto. Il pacchetto può risiedere in qualunque posizione del file system e non deve necessariamente trovarsi nella stessa cartella del pacchetto padre.

Il pacchetto figlio può essere eseguito nel processo del pacchetto padre o in un processo a parte. L'esecuzione del pacchetto figlio in un processo a parte richiede più memoria, ma offre maggiore flessibilità. Se ad esempio il processo figlio non riesce, il processo padre potrà continuare l'esecuzione.

Talvolta può essere tuttavia necessario che l'esito dei pacchetti padre e figlio venga determinato come per una singola unità oppure si desidera evitare l'overhead di un processo aggiuntivo. Se ad esempio un processo figlio non riesce e nel processo padre la fase successiva dell'elaborazione dipende dal completamento del processo figlio, è preferibile eseguire il pacchetto figlio nello stesso processo del pacchetto padre.

La proprietà ExecuteOutOfProcess dell'attività Esegui pacchetto ha valore False per impostazione predefinita e il pacchetto figlio viene eseguito nello stesso processo del pacchetto padre. Se questa proprietà viene impostata su True, sarà possibile eseguire il debug solo su pacchetti contenenti funzionalità limitate. Per eseguire il debug di tutti i pacchetti supportati dall'edizione di SQL Server 2005 in uso, è necessario installare Integration Services.

Estensione delle transazioni

Poiché la transazione utilizzata dal pacchetto padre può essere estesa al pacchetto figlio, è possibile eseguire in un'unica operazione il commit o il rollback di tutte le operazioni eseguite dai due pacchetti. È ad esempio possibile eseguire il commit o il rollback degli inserimenti nel database eseguiti dal pacchetto padre a seconda dell'esito degli inserimenti nel database eseguiti dal pacchetto figlio e viceversa. Per ulteriori informazioni, vedere Transazioni ereditate.

Propagazione dei dettagli di registrazione

Il pacchetto figlio eseguito dall'attività Esegui pacchetto invia sempre i dettagli di registrazione al pacchetto padre, anche se non è configurato per l'utilizzo della registrazione. I dettagli ricevuti dal pacchetto figlio verranno tuttavia registrati solo se l'attività Esegui pacchetto è configurata per l'utilizzo della registrazione. Per ulteriori informazioni, vedere Implementazione della registrazione nei pacchetti.

Passaggio di valori ai pacchetti figlio

I pacchetti figlio utilizzano in genere valori ricevuti dal pacchetto chiamante, che normalmente è il pacchetto padre. L'utilizzo di valori ricevuti da un pacchetto padre può essere utile negli scenari seguenti:

  • Parti di un flusso di lavoro più grande sono assegnate a pacchetti diversi. È ad esempio possibile creare un pacchetto che scarica dati durante la notte, li riepiloga, assegna i valori di riepilogo alle variabili appropriate e quindi le passa a un altro pacchetto per un'ulteriore elaborazione dei dati.
  • Il pacchetto padre coordina dinamicamente le attività in un pacchetto figlio. Il pacchetto padre determina ad esempio il numero dei giorni del mese corrente e lo assegna a una variabile, di modo che il pacchetto figlio esegua una determinata attività per il numero di volte indicato da tale valore.
  • Un pacchetto figlio deve accedere ai dati derivati dinamicamente dal pacchetto padre. Ad esempio, il pacchetto padre estrae dati da una tabella e carica il set di righe in una variabile, quindi il pacchetto figlio esegue ulteriori elaborazioni su tali dati.

È possibile utilizzare le configurazioni dei pacchetti per rendere disponibili al pacchetto figlio valori del pacchetto padre. In Integration Services è disponibile un tipo di configurazione, Variabile pacchetto padre, che consente di passare valori dal pacchetto padre al pacchetto figlio. Tale configurazione è basata sul pacchetto figlio e utilizza una variabile del pacchetto padre.

La variabile del pacchetto padre può essere definita nell'ambito dell'attività Esegui pacchetto o in un contenitore padre, ad esempio il pacchetto. Se sono presenti più variabili con lo stesso nome, verrà utilizzata quella definita nell'ambito dell'attività Esegui pacchetto oppure quella con ambito più vicino all'attività. La configurazione viene quindi mappata a una variabile nel pacchetto figlio o alla proprietà di un oggetto nel pacchetto figlio. Tale variabile può essere utilizzata anche negli script eseguiti dall'attività Script ActiveX, dall'attività Script o dal componente script.

Per ulteriori informazioni, vedere Procedura: Utilizzo di valori di variabili padre in pacchetti figlio.

Altre attività correlate

Integration Services include attività che eseguono operazioni di flusso di lavoro, come l'esecuzione di pacchetti, eseguibili e file batch di SQL Server 2000.

Per ulteriori informazioni su tali attività, fare clic su uno degli argomenti seguenti:

Configurazione dell'attività Esegui pacchetto

È possibile impostare le proprietà tramite Progettazione SSIS o a livello di programmazione.

Per ulteriori informazioni sulle proprietà che è possibile impostare in Progettazione SSIS, fare clic su uno degli argomenti seguenti:

Per ulteriori informazioni sull'impostazione di queste proprietà in Progettazione SSIS, fare clic sull'argomento seguente:

Configurazione dell'attività Esegui pacchetto a livello di programmazione

Per ulteriori informazioni sull'impostazione di queste proprietà a livello di programmazione, fare clic sull'argomento seguente:

Vedere anche

Concetti

Attività di Integration Services
Creazione del flusso di controllo di un pacchetto

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

5 dicembre 2005

Nuovo contenuto:
  • Aggiunta delle informazioni sul debug di pacchetti figlio non eseguiti nello stesso processo del pacchetto padre.