SSIS - Ordine esecuzione Flusso Dati

giovedì 22 luglio 2010 - 10.27
Tag Elenco Tags  Visual Studio 2008  |  SQL Server 2008 R2  |  SQL Server 2008  |  SQL Server 2005

alexj70 Profilo | Newbie

Buongiorno a tutti, sto iniziando ad utilizzare SSIS e mi sono trovato davanti ad un problema, diciamo uno dei tanti :).
Ho creato un pacchetto con all'interno tre flussi dati, due molto semplici composti ognuno da due origini OLE DB dove effettuo delle trasformazioni e una merge Join, il terzo invece deve effettuare utilizza 6 origini OLE DB e deve effettuare una serie di merge join in cascata per arrivare a scrivere il risultato in una tabella sql, il mio problema è che l'esecuzione dei componenti non è sequenziale, diciamo dall'alto in basso, e quindi i componenti più bassi che in realtà dovrebbero essere eseguiti per ultimi finiscono prima degli altri con il risultato di non scrivere niente nel file di destinazione.
La mia domanda quindi è : é possibile definire una gerarchia di esecuzione all'interno di un flusso dati ? oppure ci sono strade alternative ?
Grazie mille

alx_81 Profilo | Guru

>Buongiorno a tutti,
ciao! e benvenuto su dotnethell!

>Ho creato un pacchetto con all'interno tre flussi dati, due molto
>semplici composti ognuno da due origini OLE DB dove effettuo
>delle trasformazioni e una merge Join, il terzo invece deve effettuare
>utilizza 6 origini OLE DB e deve effettuare una serie di merge
>join in cascata per arrivare a scrivere il risultato in una tabella
>sql, il mio problema è che l'esecuzione dei componenti non è
>sequenziale, diciamo dall'alto in basso, e quindi i componenti
>più bassi che in realtà dovrebbero essere eseguiti per ultimi
>finiscono prima degli altri con il risultato di non scrivere
>niente nel file di destinazione.
Prima di proporti una soluzione, ti chiedo se è necessario effettuare merge join ed altre operazioni di "unione" direttamente su SSIS.
Potrebbe essere necessario, non fraintendermi, però se le sorgenti fanno parte dello stesso database, potresti pensare a fare join direttamente su sql evitando overhead su SSIS.
Se invece le sorgenti sono completamente separate, allora ok. Questo perchè le operazioni di join e le aggregazioni sono a volte più veloci direttamente sul comando sorgente.
Questo come cappello introduttivo

>La mia domanda quindi è : é possibile definire una gerarchia
>di esecuzione all'interno di un flusso dati ? oppure ci sono strade alternative ?
A mio avviso la strada alternativa è fare più dataflow e creare la gerarchia sul control flow.

>Grazie mille
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

alexj70 Profilo | Newbie

Grazie mille per la risposta, in alcuni casi la merge potrei farla da sql direttamente, però pensavo di farla in ssis per utilizzare le variabili al posto dei nomi tabella.
Proverò a farlo gestendo + flussi.

Saluti
Alessandro Pelagotti
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5