2009-11-10 53 views
0

我有一個SSIS包運行存儲過程導出到excel文件。一切都像冠軍一樣工作,直到我需要對存儲過程重寫一下。 proc現在需要大約1分鐘的時間運行,並且導出的列是不同的,所以我的問題如下:SQL超時和SSIS

1)SSIS抱怨時,我打的預覽按鈕

2「命令返回沒有列信息」),它的時間約30秒後出來。

我做了什麼。

試圖清理/優化查詢。這有點幫助,但它仍然在做一些主要的計算,並且它在SSMS中運行得很好。

將超時值更改爲90秒。似乎沒有幫助。也許這裏有人可以嗎?

感謝,

回答

1

發現了這個幫助巨大的小珍聞。 No Column Names

基本上所有您需要做的就是將以下內容添加到SSIS中的SQL查詢文本中。

SET FMTONLY OFF

SET NOCOUNT ON

只有現在的問題是它運行慢如糖蜜:-(

編輯:它的運行只是太他媽慢

從使用變更。 #tempTable to tempTable。在適當的drop語句中添加... arr ...

0

在黑暗中拍攝根據晦澀的東西,我打幾年前:當你修改的過程中,你添加第二過程的調用?這可能會擾亂SSIS確定返回數據集的能力。

至於(2),程序需要30+或90+秒才能在SSMS中運行?如果不是,你知道查詢實際上是從SSIS進入SQL嗎?可能值得啓動SQL Profiler來查看實際發送到SQL Server的內容。 [這是我發現我那隱約的事實的方式。]

1

雖然看起來你可能已經回答了你自己的一部分您可能會收到「由命令返回的列信息不存在」錯誤,因爲該表在嘗試驗證元數據時不存在。將表創建爲非臨時表可以解決此問題。

如果您堅持使用臨時表,則可以在數據流之前的步驟中創建臨時表。您需要將其創建爲##表並關閉連接的連接共享才能生效,但它是創建永久表的替代方法。