【发布时间】:2016-03-24 00:34:14
【问题描述】:
我正在编写一个 SSIS 包来获取一些文本数据,将其与 SQL Server 中表中的字段连接,然后将数据插入到表中。我正在使用 SQL Server Data Tools 2015 和 SQL Server 2014。
我已经配置了一个带有 ADO NET 连接到数据库的连接管理器。在这个特定的数据流组件中,我有一个 ADO NET 源,它突出显示了该数据库中的一个表。我获取表数据,对其进行排序,然后进行合并连接。我只需要来自该 ADO NET 源的 Id 和 Field1。为了便于讨论,假设它也有 Field2 和 Field3。
我在运行作业时收到 Field2 和 Field3 的以下警告:
[SSIS.Pipeline] 警告:输出“ADO >NET Source Output”(42) 和组件“ADO NET Source”(34) 上的输出列“Field2”(45) 随后未在数据流中使用任务。删除这个未使用的输出列可以提高>数据流任务的性能。
我有很多数据正在处理,所以如果可以避免的话,我不希望将这些数据带入内存。我假设要走的路是通过删除输出列从 ADO NET 源中删除它。但是,当我双击 ADO NET Source 并选择 Columns 时,我会看到左侧为 External Column 而右侧为 Output Column 的表格。当我右键单击这些列映射之一时,上下文菜单中的任何选项均未启用(剪切、复制、粘贴、删除)
当我进入高级编辑器视图时(通过右键单击 ADO NET 源并选择显示高级编辑器),然后导航到列映射选项卡。我删除了不需要的列的映射并选择确定。当我再次打开高级编辑器时,映射再次显示,就好像它们没有被删除一样。此外,当我转到输入和输出属性并选择“删除列”时,我收到以下错误:
无法删除该列。该组件不允许>从此输入或输出中删除列。 管道组件已返回 HRESULT 错误代码 0xC0208018
有谁知道如何减少来自 ADO NET 源的数据?
【问题讨论】:
标签: c# sql-server ssis ado.net