SQL超时和SSIS

时间:2009-11-10 15:35:57

标签: sql ssis

我有一个SSIS包,它运行存储过程以导出到excel文件。一切都像冠军一样,直到我需要对存储过程进行一些重写。 proc现在需要大约1分钟才能运行,导出的列也不同,所以我的问题如下:

1)当我点击预览按钮“没有命令返回的列信息”

时,SSIS会抱怨

2)大约30秒后它会超时。

我做了什么。

尝试清理/优化查询。这有点帮助,但它仍在进行一些重要的计算,它在SSMS中运行得很好。

将超时值更改为90秒。似乎没有帮助。也许这里有人可以吗?

谢谢,

3 个答案:

答案 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的内容。 [这就是我发现我模糊的事实的方式。]