使用SSIS输出数据到平文件时卡死怎么办? (Why exporting data to flat file using SSIS gets stuck)

浏览: 1633

前两天有一个很小的需求, 就是把一个view中的数据全部输出到一个平文件(csv)里. 这个需求非常简单, 一个包含几个步骤的ssis package就可以解决问题, 而且因为数据源可控, 甚至连error handle都用不着, 于是我就做了如下图所示的两个控件来实现功能.

但是呢, 一开始跑就发现这个package卡住了, 也不报错, 也不前进, 查看cpu和memory占用率也没有特别的增长...

Clipboard Image.png

查看了一下执行结果, 如下图, 也没有发现特别的信息.

Clipboard Image.png

后来Google了一下, 开始怀疑是OLE DB SOURCE的问题, 当时的设置是这样的. 很标准的设置, 直接调用表名.

Clipboard Image.png

然后我又试了用SQL Command并使用select * 语句, 发现也是一样的问题... 很尴尬. 

这时候我想起来一件事, 那就是写stored procedure或者查询时尽量不要用select *语句, 因为会影响性能, 坦白讲我觉得这句话和ssis没多大关系, 或者说和我现在的问题没多大关系, 但既然有了可能性就应该尝试一下. 于是代码变成了下图这样, 然后问题就解决了...

Clipboard Image.png


最后的最后我要声明一下, OLE DB SOURCE直接指定表名的设置方法并没什么错误, 至少在输出数据到别的目的地的时候都是没有问题的, 比如数据库.. 只是在输出到平文件我才碰到这个问题, 希望大家小心吧, 如果你遇到不一样的情况也欢迎留言讨论.

推荐 1
本文由 Naralee 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

对通常性能调优的时候会去检查这些东西,SELECT * 需要加载全部的列,通常情况下可以只选择需要加载的列特别是列数超级多的表。
谢谢回复, 您可是我偶像... 我是看您博客长大的 ; )

要回复文章请先登录注册