SSIS 同步和异步转换

liangCK 2009-10-10 10:36:06
摘自msdn


1.同步转换

同步转换以一次一行的方式处理传入行并在数据流中传递它们。输出与输入同步,这意味着输出与输入同时发生。因此,若要处理一个给定行,转换不需要数据集中其他行的信息。在实际实现中,行在从一个组件传递到下一个组件时分组到多个缓冲区中,但是这些缓冲区对于用户是透明的,您可以假定每一行都单独进行处理。
“数据转换”这种转换是同步转换的一个示例。对于每个传入行,它都转换指定列中的值,然后将其向下游发送。每个单独的转换操作都与数据集中的其他所有行无关。

在编写 Integration Services 脚本和编程时,可以通过以下方式指定同步转换:查找一个组件的输入的 ID,然后将其赋给该组件的输出的 SynchronousInputID 属性。这可以使数据流引擎处理输入中的每一行,然后自动将每行发送给指定输出。如 果希望每一行都产生一个输出,则不必再编写任何其他代码来输出数据。如果使用 ExclusionGroup 属性指定各行的输出只应归为一个或另一个输出组,就像条件性拆分转换中那样,则必须调用 DirectRow 方法来为每一行选择相应的目标。如果存在错误输出,必须调用 DirectErrorRow 将存在错误的行发送到错误输出,而不是默认输出。


2.异步转换

如果处理每一行时无法独立于其他所有行,则您的设计可能需要异步转换。换言之,您不能在处理每一行时在数据流中传递该行,而必须使输出数据与输入异步,即两者不同时发生。例如,以下情况需要异步转换:
• 组件必须获得多个数据缓冲区后才能执行处理。例如排序转换,在该转换中,组件必须在一个操作中处理整个行集。
• 组件必须组合多个输入中的行。例如合并转换,在该转换中,组件必须检查来自各个输入的多个行,然后按照排列好的顺序将这些行合并。
• 在输入行和输出行之间不存在一对一的对应关系。例如聚合转换,在该转换中,组件必须向输出添加一行来保存计算的聚合值。
• 由于源组件也必须显式将从数据源读取的每一行添加到该组件的输出缓冲区中,因此源与具有异步输出的转换很相似。
还 可以创建一个模拟同步转换的异步转换,方法是显式将每个输入行复制到输出中。使用此方法可以重命名列或者转换数据类型或格式。但是,此方法会降低性能。您 可以使用内置 Integration Services 组件(如复制列或数据转换)达到同样的效果,但是性能更佳。

...全文
1019 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
Me_online 2010-04-27
  • 打赏
  • 举报
回复
我晕了!

有谁知道中文的 MSDN 是机器翻译的还是人翻译的?
starlet521 2010-04-20
  • 打赏
  • 举报
回复
up 学些了
Jacky_wei 2010-03-01
  • 打赏
  • 举报
回复
看了看,好多不懂。
回复内容太短了!
pbsh 2009-10-30
  • 打赏
  • 举报
回复
梁哥好强,学习~
jack_ailly 2009-10-29
  • 打赏
  • 举报
回复
学习
V68V6 2009-10-29
  • 打赏
  • 举报
回复
学习
guidahuasheng 2009-10-23
  • 打赏
  • 举报
回复




xuexi
雪狼孤竹 2009-10-16
  • 打赏
  • 举报
回复
路过……
claro 2009-10-16
  • 打赏
  • 举报
回复
。。
phoeni_xin 2009-10-12
  • 打赏
  • 举报
回复
学习了。
pbsh 2009-10-12
  • 打赏
  • 举报
回复
学习
叶子 2009-10-12
  • 打赏
  • 举报
回复
学习
boboo_2000_0 2009-10-12
  • 打赏
  • 举报
回复
学习一下。
wsxcdx 2009-10-12
  • 打赏
  • 举报
回复
学习
qiqi860819 2009-10-10
  • 打赏
  • 举报
回复
来学习
黄_瓜 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dawugui 的回复:]
这次不用请小P梁了.
[/Quote]
o
dawugui 2009-10-10
  • 打赏
  • 举报
回复
这次不用请小P梁了.
7761098 2009-10-10
  • 打赏
  • 举报
回复
up
Teng_s2000 2009-10-10
  • 打赏
  • 举报
回复
up
gisyellow 2009-10-10
  • 打赏
  • 举报
回复
学习新知识咯。。
加载更多回复(6)

594

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧