SSIS Buffers and Estimated Row Size

  • Can someone provide further insight into how the SSIS buffer manager calculates the 'Estimated Row Size'?

    I know that metadata of Data Source Components is examined and that the maximum size of variable-length strings is used. Am I right in thinking that it also depends on the Transformations used in the buffer's execution tree?

    I know the Derived Column Transformation is synchronous (no memory is copied as buffers are reused). This means that a Derived Column Transform in a given execution tree affects the number of rows the tree's buffers can handle (as the buffer must accommodate the data derived).

    Every online article I've found on Estimated Row Size cites 'the metadata about your source data' as the basis for the calculation. This makes sense only if you concede that source data is not restricted to SSIS Data Source Components but extends to fields generated by Transformations (Copy Column, Data Conversion, Derived Column, Lookup etc). If this is indeed the case, it's well worth highlighting as I doubt I'm the first person to derive inaccurate 'rows/buffer' predictions by limiting their Estimated Row Size calculation to field sizes at the root of an execution tree.

    Can someone more familiar with SSIS internals please confirm?

    For those unfamiliar with execution trees and/or interested in SSIS tuning, refer to this great white paper.

Viewing 0 posts

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