Microsoft SSIS 2005从XML源中删除列

时间:2009-01-14 09:51:03

标签: xml sql-server-2005 ssis

我在Microsoft SSIS 2005包中有一个XML源,当我调试包时,我收到的警告如下:

[DTS.Pipeline]警告:输出“AccFwDDetail”(303)和组件“XML Source”(1)的输出列“AccBasicRateDesc”(15229)随后未在数据流任务中使用。删除此未使用的输出列可以提高数据流任务性能。

所以我试图删除所有这些,但这似乎会导致一个问题,因为我将不会使用整个xml输出,这给了我错误:

联系人插入时出现

错误[DTS.Pipeline]:“输出”AccFwdDetail“(19)”不包含输出列。异步输出必须包含输出列。

有没有一种巧妙的方法来定义我想从xml文件中输出哪些输出?我试过在高级编辑器中删除整个输出,但这给了我错误:

联系人插入时出现

错误[XML源[1]]:无法从输出列中删除输出。

2 个答案:

答案 0 :(得分:1)

看起来像Catch 42。

在这种情况下我会忽略原始警告 - 它只是一个性能警告,它不会导致任何实际问题。在这种情况下,性能影响很小,因为没有人会消耗此输出中的数据。

答案 1 :(得分:1)

在数据源之后,在数据流中使用Union All组件(数据源作为唯一输入)。删除所有未使用的列。

据我所知,这是摆脱这些警告的唯一方法。

以下是一些关于SSIS性能的非常有用的链接:

http://blogs.msdn.com/michen/archive/2007/06/11/katmai-ssis-data-flow-improvements.aspx

http://www.microsoft.com/technet/prodtechnol/sql/2005/ssisperf.mspx

http://www.simple-talk.com/sql/sql-server-2005/sql-server-2005-ssis-tuning-the-dataflow-task/