为什么SSIS中的行采样转换会阻塞?

时间:2014-03-29 18:45:20

标签: ssis

根据Microsoft Training Kit 70-463和大多数在线资源,SSIS中的Row Sampling是一种阻塞转换。它为什么会阻塞?如果您只是随机选择固定数量的行,则似乎不必阻止整个数据集。由于Percent Sampling是非阻塞的,所以特别奇怪。有没有人对这种行为有解释?或者证据表明它没有阻止,如this blog post所述?

1 个答案:

答案 0 :(得分:1)

百分比样本转换占每个缓冲区的百分比相同。它事先知道每个缓冲区要占用多少行(基于缓冲区的大小),因此它可以立即处理缓冲区并让它沿着管道向下飞行。 另一方面,行样本转换事先并不知道每个缓冲区需要多少行,因为它不知道它等待多少缓冲区。所以这个转换必须等待,计算所有缓冲区,然后计算从每个缓冲区中取出多少行,然后处理所有这些缓冲区。 证明(基于SSIS记录):http://microsoft-ssis.blogspot.com/2014/06/is-row-sampling-transformation-fully.html