The Parallel Loop Task is an SSIS Control Flow task, which can execute multiple iterations of the standard Foreach Loop Container concurrently. Based on actual tests, when a CPU-intensive process is run on a 4-core machine using this Parallel Loop Task, it executes 3 times faster as compared to running the same process sequentially.
Use the General page of the Parallel Loop Task Editor dialog to configure the parameters needed to execute a loop in parallel.
Specify the task name.
Specify the task description.
Specify whether or not the Parallel Loop Task terminates if parallel execution fails.
Specify the package connection.
Type the Foreach Loop you want executed concurrently, or click the browse button (...) and locate it. You must disable the target loop because the loop execution will be done by the Parallel Loop Task.
Specify the number of threads to use for concurrent execution. A value of -1 allows the maximum number of concurrently running iterations to equal the number of processors plus two. The specified value is constrained to be equal to or less than the Package's MaxConcurrentExecutables property.
- Where can I find the documentation for the Parallel Loop Task?
- Error Message: Retrieve the COM class factory for component with CLSID failed due to the following error: 8007007e. The specified module could not be found.
- Considerations about Foreach Loop iteration variable
- How to set up a dynamic loop connection
- My Parallel Loop Task just stopped working.
- Fixed: Failed with error "The object cannot be added because another object with the same name already exists in the collection. Use a different name to resolve this error." when executing parent -> child package with duplicate parameters in both packages (Thank you, Manuel).
- Fixed: Incorrect application of loop-scoped variables into the parent package (Thank you, J.Ashley).
- Fixed: Failed when project connections were used.
- Fixed: Resolved long-standing concurrency issue affecting customers using SQL Server 2012 and above. The issue appeared occasionally when a connection expression was configured to use a variable iterated in the loop.
- Fixed: Failed under SQL 2012 and above with error "Changing the Value of a variable failed because it is a parameter variable. Parameter variables are read-only." when package contained parameters (Thank you, Ankit).
- Fixed: Failed under SQL 2012 with error "A deadlock was detected while trying to lock variables "..." for read/write access. A lock cannot be acquired after 16 attempts. The locks timed out." when Project parameters were defined (Thank you, Ecki).
- Fixed: Task now provides better logging information (Thank you, Jonathan).
- New: Task can now process parallel loops defined inside For Each Loop (Thank you, Clement).
- Fixed: Executing child package containing Parallel Loop Task with inherited variable from parent package failed with error: "The object cannot be added because another object with the same name already exists in the collection. Use a different name to resolve this error." (Thank you, Jacob).
- Fixed: Task didn't update package-scoped variables used in the loop.
- New: Introduced task.