• How about posting the actual code instead of an estimated execution plan? Also, it would be a LOT better to see the actual execution plan. You have a splitter in here named fn_Split, I can tell from the execution plan that your splitter needs to be thrown away for a better one. You have a multi-statment table valued function with a loop. This is the absolute worst possible way to write a function. It is actually slower than a scalar function. To rub salt in the wound it appears you call this function repeatedly.

    Share the code of your procedures and we can help minimize the number of times you need to call this. And more importantly we can help you replace that function with one that isn't so painfully slow.

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/