我有一個數據流任務掛在執行之外。
流程很簡單,對不同的表格進行兩次查詢(兩次都有一對連接),然後通過一個公共ID對otuputs進行排序和合並,向所有記錄添加一個靜態列,將行計數保存在一個用戶變量中以備後用,最後插入另一個數據庫的表格中。 我們正在使用OLE DB來源和目標。來源是MSSQL 2000和目標是MSSQL 2012
症狀:
SSIS數據流任務掛起執行Pre-excecute階段
信息:0x40043006位於加載沙箱表,SSIS.Pipeline:準備執行階段開始。
信息:加載沙箱表中的0x40043007,SSIS.Pipeline:預執行階段開始。
直到停止執行爲止。
失敗的解決方案:
SET FMTONLY OFF;
SET NOCOUNT ON;
在開始時添加。
額外位: 我真的很希望有人能幫助我。我對SSIS相當陌生,這是我第一次使用它。我通常與Pentaho一起爲我的ETL工作,但客戶需要在SSIS上實施解決方案。我已經爲這個問題爭論了幾天,現在我開始用盡想法來解決它。
當通過命令行就卡住過跑,我得到下面的輸出:
Progress: 2013-03-19 14:36:26.21
Source: Load Sandbox Table
Validating: 0% complete
End Progress
Progress: 2013-03-19 14:36:26.21
Source: Load Sandbox Table
Validating: 12% complete
End Progress
Progress: 2013-03-19 14:36:26.22
Source: Load Sandbox Table
Validating: 25% complete
End Progress
Progress: 2013-03-19 14:36:26.22
Source: Load Sandbox Table
Validating: 37% complete
End Progress
Progress: 2013-03-19 14:36:26.23
Source: Load Sandbox Table
Validating: 50% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 62% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 75% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 87% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 100% complete
End Progress
Warning: 2013-03-19 14:36:26.26
Code: 0x80047076
Source: Load Sandbox Table SSIS.Pipeline
Description: The output column "ITEM_OID (1)" (47) on output "Merge Join Outp
ut" (28) and component "Merge Join" (11) is not subsequently used in the Data Fl
ow task. Removing this unused output column can increase Data Flow task performa
nce.
End Warning
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 0% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 12% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 25% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 37% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 50% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 62% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 75% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 87% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 100% complete
End Progress
Progress: 2013-03-19 14:36:26.31
Source: Load Sandbox Table
Pre-Execute: 0% complete
End Progress
Progress: 2013-03-19 14:36:26.31
Source: Load Sandbox Table
Pre-Execute: 12% complete
End Progress
Progress: 2013-03-19 14:36:26.31
Source: Load Sandbox Table
Pre-Execute: 25% complete
End Progress
Progress: 2013-03-19 14:36:26.34
Source: Load Sandbox Table
Pre-Execute: 37% complete
End Progress
Progress: 2013-03-19 14:36:45.69
Source: Load Sandbox Table
Pre-Execute: 50% complete
End Progress
,它再次凍結後。
SOLUTION(在這裏張貼這一點,因爲我不能回答我的問題了另外5個小時,當我允許我會做到這一點。)
我終於得到它。
事實證明驗證存在問題,但不僅如此問題的第四個失敗解決方案中所述,SSIS元素會經過驗證。
連接也得到驗證,並有自己的延遲驗證屬性,該屬性需要設置爲true。
之後執行時間從40+分鐘或不運行到整個過程不到一分鐘(這只是一個更大的過程的一個步驟)
我希望有這個問題的人可以很容易地找到這個解決方案因爲有很多人遇到這個問題,幾乎沒有解決方案在網上發佈。
一言以蔽之:檢查,參與任務的所有元素,包括的 DB連接有延遲驗證屬性設置爲true。
如果您不從Visual Studio的上下文中運行它,會發生什麼情況?在命令行中,'dtexec.exe /文件C:\ somepath \ Package.dtsx' – billinkc 2013-03-19 19:47:49
謝謝,我沒有想過這個。它再次卡住了,雖然輸出看起來很奇怪。 輸出對於評論太長,我將編輯問題並將其添加到那裏。 – Ryoku 2013-03-19 20:51:26
你可以在其所有的texty榮耀發佈輸出嗎? – billinkc 2013-03-19 20:54:19