我在Microsoft SSIS 2005包中有一个XML源,当我调试包时,我收到的警告如下:
[DTS.Pipeline]警告:输出“AccFwDDetail”(303)和组件“XML Source”(1)的输出列“AccBasicRateDesc”(15229)随后未在数据流任务中使用。删除此未使用的输出列可以提高数据流任务性能。
所以我试图删除所有这些,但这似乎会导致一个问题,因为我将不会使用整个xml输出,这给了我错误:
联系人插入时出现错误[DTS.Pipeline]:“输出”AccFwdDetail“(19)”不包含输出列。异步输出必须包含输出列。
有没有一种巧妙的方法来定义我想从xml文件中输出哪些输出?我试过在高级编辑器中删除整个输出,但这给了我错误:
联系人插入时出现错误[XML源[1]]:无法从输出列中删除输出。
答案 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/