您可以在 ADO.NET Source 中使用该变量。
1.在DFT任务的属性窗口中点击表达式属性,选择ADO.NET Source SQL Command
在表达式中写下你的 SQL 查询
Select LoginId,JobTitle," + (DT_WSTR,10) @[User::TestVariable] + " as DerivedColumn
from HumanResources.Employee"
我认为您的派生列不会增加任何开销,因为它是一个非阻塞组件(bt 有一些例外)
为了找到单个组件的速度,
1.计算包的整体执行时间,您可以在执行结果选项卡中找到它
Overall Execution Speed = Source Speed + Transformation Speed
2.删除派生组件并将源连接到行转换。现在再次查看执行时间。这将为您提供源速度。
Overall Execution Speed - Source Speed = Transformation Speed
SSIS是一个内存管道,所以它的所有转换都发生在内存中。它严重依赖缓冲区。在你的情况下,SSIS缓冲区有196,602行。这个值由2个属性控制
DefaultMaxBufferRows
,DefaultMaxBufferSize
MaximumBufferSize是100MB。现在你需要计算通过计算表中的列大小来估计行大小。假设添加数据类型长度约为 40 个字节,那么 196,602 行的字节数为
196,602*40=7864080 ~ 7MB
这小于 DefaultMaxBufferSize 10MB。您可以尝试增加 DefaultMaxBufferRows 以提高速度。但是在得出结论之前,您需要再次进行所有性能测试。我建议您阅读这篇文章以全面了解 SSIS 性能