2012-11-17 78 views
0

我是SSIS的初學者,所以我可能會做一些愚蠢的事情。executePackage似乎需要很長時間才能啓動子包

我有涉及在時間上循環異源隊列和處理對象1的處理。這個過程目前正在'設定邏輯'和其下降的東西。我被要求以循環的方式對其進行修改,以便爲我做出決定。

我選擇在1個包中實現隊列邏輯並在另一個包中實際處理。

這一切會比較好......考慮

我現在有過程和運行,但其緩慢的。每件9秒。顯然,我不能提出這個解決方案。 :-)

一件事我注意到,1.5 - 每個循環爲2秒都在ExecutePackage任務隊列中的循環。

我無法弄清楚如何獲得硬一些,我使用性能調整的閃爍的綠框方法。其他步驟似乎非常快。添加索引,將sql更改爲sps,所有常用技巧都有所幫助。

  1. 是UI realiable在所有關於框變爲白色/黃色/綠色的嗎?某些任務在進度選項卡中報告時間,有些似乎不是。所以我在計算黃色時間。

  2. 應該調用一個子包是否昂貴? 1我做的更改是我將'RunInASeparateProcess'更改爲FALSE。我這樣做,是因爲分裝,否則會產生以下消息:

    錯誤:0xC0012024在腳本任務:任務「腳本任務」不能在該版本集成服務的運行。它需要更高版本的版本。 任務失敗:腳本任務

  3. 我也做了閱讀,似乎倡導多個包。任何人有任何計數器模式?我應該留在課程上嗎?我開始更換爲1包。複製/粘貼似乎不能很好地工作w/SequenceContainers。我還需要重新創建父包中的所有變量。可以,但我不知道這是答案。

  4. 有誰知道任何調整資源/網站/書籍,他們願意分享。

更新 - 我一直在努力弄清楚問題所在。我在想這是傳遞變量值的包配置。我不認爲是這樣。我可以將變量傳遞給另一個包,它沒有任何內容,並且速度很快。

我可以通過向它添加兩個連接管理器來使平凡的子包變慢。 我突然意識到我可能會在主包和子包中創建並斷開與Oracle服務器和SQL服務器的連接。

我在這個觀察中正確嗎?

有什麼辦法可以重用這兩個軟件包之間的連接嗎? 當我谷歌,大部分我看到的是傳遞連接字符串的建議。

更新 - 我將兩個軟件包合併爲一個。這個性能不是大約1.25秒每個項目,從大約9下降。我可以指出的唯一改變是我現在重複使用單個連接而不是多個連接。

謝謝,我感謝您提供的任何幫助。

格雷格

+1

您是否將自己的表現置於在BIDS中運行時的表現?你使用的是什麼版本(我問你是因爲你提到了編譯,SSIS中沒有真正的編譯,但是2012比其他版本更接近)?由於您在BIDS中運行,您可能會看到額外的開銷。嘗試啓用日誌記錄,並將其作爲計劃作業從測試服務器運行,然後查看性能如何。 –

+0

有時UI不可靠(2008版)。特別是當你在另一個軟件包中有軟件包時。它也比使用SQL作業在服務器上運行包慢。嘗試在服務器上運行包含SQL作業的包並分析速度。 –

+0

威廉,我用術語編譯不正確。我們有BIDS 2005.我會嘗試在服務器上獲取軟件包。有變更控制程序來處理,所以我試圖在我去那裏之前儘可能地獲得。 – greg

回答

1

一旦啓用日誌記錄,我建議使用dtexec命令窗口中運行該程序包。儘管這並不能完美地複製服務器環境,但它確實具有以下優點:(a)消除BIDS作爲潛在的性能問題,以及(b)無需跳過變更控制環就可以做的事情。

+0

今天我會研究這個。我做了一個單一的整體軟件包(嘆氣),它的運行速度足以在一天左右的時間內從我們的數據開始追趕。 我正在看其他一些問題,希望將1.3秒降低到〜.5,然後我會看看dtexec和配置,以備大日子。 感謝您的回答 – greg

相關問題