In general, if you want to process each row individually, use a data stream, otherwise it might be better to use the Sql command.
Personally, I would go write SQL where I can. It’s easier to optimize later and (usually) faster. Google will give more detailed answers.
Another factor to consider is the provider you use for your connections.
You need to make a decision based on your needs. We use postgres DB, so we need to create a load of staging tables for some processes, which speeds it all up.
You should also take into account the box it works on, if you have all the powerful DB boxes, and a little ETL box, then there would be no point in managing anything.
If you do all your processing in the ETL field, you will also drag a lot of data over the network.
Check out these links to get started:
ssistalk.com/category/ssis/ssis-advanced-techniques/
msdn.microsoft.com/en-us/library/ms141031.aspx
weblogs.sqlteam.com/jamesn/Default.aspx
Mr shoubs
source share