What Is MaxConcurrentExecutables Property in SSIS Package?

MaxConcurrentExecutables is SQL Server Integration Services Pacakge level property that defines that how many tasks can run simultaneously(parallel).
By default the value of this property is set to -1 that means that It will be able to run Total Tasks=Number of processors+2.
As we can see in below Fig 1. The SSIS Package is executing 6 Data Flow Tasks as MaxConcurrentExecutables value is set to default(-1). My machine has 4 processors.

Fig 1: MaxConcurrentExecutables set to default value (-1)

If you are sharing your Server to run other application/s ,  then you might not want to use all the resources for SSIS. In that case, you can set the MaxConcurrentExecutables value to small number.Let's set the MaxConcurrentExecutables=2 in package and run the package and see if it is only executing only two tasks in parallel.

Fig 2: Setting MaxConcurrentExecutables property value to low number to share Resources

As we can see that only two Tasks are executing in parallel. If you are changing the MaxConcurrentExecutables value from default to some higher number, Test your SSIS Package to make sure you are getting better performance than default setting as well no other application/process is being effected by new SSIS Package setting.

Let's set MaxConcurrentExecutables =10 and see if all the Tasks are executing parallel.
Fig 3: Setting MaxConcurrentExecutables to higher value to run more Tasks in Parallel


  1. This is very useful. However I have 16 Physical Processors and I keep MaxConcurrentExecutables = -1 The default setting. So in my case,Total Tasks=Number of processors+2 = 16+ 2 =18. I have 10 DFTs and still its running only 6 at a time. Can you tell me why?

    1. it is the logical processor rather than the physically present processor that is counted.