title: How does SSIS determine execution order on the control flow?
body: <h2>Summary:</h2>
  
  <p>I would like to find a way to tell SSIS, when running multiple executables in parallel, which ones should be run first.  There is plenty of material on the Internet about the MaxConcurrentExecutables property, but no information about how SSIS decides what order to run the executables in. </p>
  
  <p>I'm looking for an answer that describes the mechanism that SSIS uses to determine the runtime order of executables when no precedence constraints exist, and the number of executables is greater than the maximum concurrent executables. </p>
  
  <h2>More Details:</h2>
  
  <p>I have a master SSIS package that is calling a large number of Staging packages, each of which is responsible for copying data into a different table on our Staging database. The time these child packages take to execute varies widely, from &lt; 1 minute to > 20 minutes.  </p>
  
  <p>To use my time best, I would like the longer-running packages to run first, then the medium packages, then the small ones.  </p>
  
  <p>Ideally, I would be able to sort the packages into priority containers (A,B,C), then have the SSIS engine work on the containers in order.  I <strong>don't</strong> want to wait for A to complete before starting B: rather, I'd like all the executables in A to be started before SSIS begins working on B. </p>
  
  <p><a href="https://i.stack.imgur.com/MZh3l.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/MZh3l.png" alt="enter image description here"></a></p>
  
  <p>Is there any way to have SSIS start all of the tasks in Container A before it starts working on Container B? Failing that, can anyone describe the logic that SSIS uses to determine the run order?</p>