I had an SSIS 2008 package that copied new/changed data from the production database to an archive database every 2 minutes using Change Tracking, a staging database, etc. The package was stored in the SSIS repository in the SQL Server 2008 instance where the archive database was stored. I upgraded the package to SSIS 2012 and deployed it to the SQL Server 2012 instance where the production database was stored. The package took around 20 seconds to run on the old server but over 7 minutes to run on the new server and I couldn't imagine why. Luckily the first thing I tried fixed it: I changed the MaxConcurrentExecutables of the upgraded package from -1 to 8. Unfortunately I can't explain why that fixed it.