Multiple Data Flow Performance

  • I have about 20 dataflows and child packages that don't depend on eachother. However I know 5 of them do take much longer than the other 15. I know SSIS caluclates based on the processors of your server how many to run concurrently.

    I was wondering if there is any way to make it start those 5 first before starting others.

    Right now I am assuming 8 processors on the server. I don't want to leave precedence constraints because then it waits until those are completed before it starts new ones. I am hoping the other 15 get completed while those 5 are running.

  • Maybe put the 5 slow ones in one package and the 15 fast ones in another package and then running those two packages simultaneously?

    Need an answer? No, you need a question
    My blog at https://sqlkover.com.
    MCSE Business Intelligence - Microsoft Data Platform MVP

  • Ran into this myself. There's no way to prioritize multiple streams in the same data flow.

    However, create two separate dataflows in the same controlflow. Use a script component to 'Wait 2 seconds' before firing off the 15 stream dataflow, allowing the first 5 stream dataflow to take up what threads it needs off the processor before the other 15 come into play.


    - Craig Farrell

    Never stop learning, even if it hurts. Ego bruises are practically mandatory as you learn unless you've never risked enough to make a mistake.

    For better assistance in answering your questions[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

  • There is only 1 stream per data flow, but 20 data flows.

  • Khades (1/24/2012)


    There is only 1 stream per data flow, but 20 data flows.

    You can merge those dataflows together. A dataflow can have multiple streams.

    Need an answer? No, you need a question
    My blog at https://sqlkover.com.
    MCSE Business Intelligence - Microsoft Data Platform MVP

  • I've run into this as well, I combined the small flows into a single one and ran that in parallel with some others that ran much longer. This gave me much more control of the flow.

    CEWII

  • Yep, I'd go for merging the dataflows too 🙂

  • You can use sequence containers to group things and put precedence constraints between the containers to run them one at a time.

  • P Jones (1/26/2012)


    You can use sequence containers to group things and put precedence constraints between the containers to run them one at a time.

    Exact opposite of what he's looking to do. He just wants to make sure the long ones kick off first, and then start processing the small ones in parallel, instead of all the small ones taking up all the streams and the long ones waiting till the end.


    - Craig Farrell

    Never stop learning, even if it hurts. Ego bruises are practically mandatory as you learn unless you've never risked enough to make a mistake.

    For better assistance in answering your questions[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

Viewing 9 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic. Login to reply