我有一个SSIS包,它运行存储过程以导出到excel文件。一切都像冠军一样,直到我需要对存储过程进行一些重写。 proc现在需要大约1分钟才能运行,导出的列也不同,所以我的问题如下:
1)当我点击预览按钮“没有命令返回的列信息”
时,SSIS会抱怨2)大约30秒后它会超时。
我做了什么。
尝试清理/优化查询。这有点帮助,但它仍在进行一些重要的计算,它在SSMS中运行得很好。
将超时值更改为90秒。似乎没有帮助。也许这里有人可以吗?
谢谢,
答案 0 :(得分:1)
发现这个小小的花絮非常有帮助。 No Column Names
基本上,您需要将以下内容添加到SSIS中的SQL查询文本中。
设置FMTONLY OFF
设置NOCOUNT
现在唯一的问题是它作为糖蜜运行缓慢: - (
编辑:它的运行速度太慢了。从使用#tempTable更改为tempTable。添加适当的drop语句。啊...
答案 1 :(得分:1)
虽然看起来您可能已经回答了部分问题,但您可能会收到“命令返回的无列信息”错误,因为该表在尝试验证元数据时不存在。将表创建为非临时表可以解决此问题。
如果您坚持使用临时表,则可以在数据流之前的步骤中创建临时表。您需要将其创建为##表并关闭连接的连接共享才能使其正常工作,但它是创建永久表的替代方法。
答案 2 :(得分:0)
基于我多年前看到的一些模糊不清的黑暗镜头:当你修改程序时,你是否添加第二个程序的调用?这可能会破坏SSIS确定返回数据集的能力。
对于(2),该程序在SSMS中运行需要30+或90+秒?如果没有,您知道该查询实际上是从SSIS进入SQL吗?可能值得启动SQL事件探查器以查看实际发送到SQL Server的内容。 [这就是我发现我模糊的事实的方式。]