优化SSIS 2005中的脚本转换

时间:2013-03-18 14:57:08

标签: ssis

我有一个带有DT_TEXT列的SSIS 2005数据流,我需要在其中执行一些字符串替换。我尝试在Derived Column任务中执行此操作,但是这样的表达式将列的大小限制为4000个字符。否则,将发生截断错误。

REPLACE(REPLACE(REPLACE((DT_STR, 4000, 1252) [COMMENT],"&","&"),"	","\t"),"
","\n")

所以我转向脚本转换来执行相同的字符串替换,如下所示:

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

    Dim blobData() As Byte = Row.COMMENT.GetBlobData(0, CInt(Row.COMMENT.Length))
    Dim blobString As String = Encoding.Unicode.GetString(blobData)

    blobString.Replace("&", "&").Replace("	", "\t").Replace("
", "\n")

    Row.SCRUBBEDCOMMENT.AddBlobData(Encoding.Default.GetBytes(blobString))

End Sub

这样可以正常工作,但它太慢了。有什么办法可以加快速度吗?或者这可以在没有截断的情况下在SSIS表达式中完成吗?

谢谢,

比尔

1 个答案:

答案 0 :(得分:0)

实际上,我想出了一种加快速度的快速方法......只有在进行替换时才调用AddBlobData方法。在我的情况下,我不希望有很多替代品。这无疑加速了转型。希望这有助于其他人。

比尔