2010-02-01 74 views
0

我們有一個實時獲取數據並將記錄添加到數據庫的過程。我們正在使用SQL Server 2008 Integration Services來運行我們的提取轉換加載(ETL)流程。我們從FTP站點下載大約50個文件,處理它們然後存檔這些文件。SQL Server Integration Services(SSIS)每次運行時都會重新編譯C#代碼嗎?

的問題是處理需要大約每個文件甚至認爲這些文件是非常小(約10行),17s和處理代碼是相當簡單的。查看機器上的負載,它受CPU限制,網絡,磁盤或內存中的流量不會很多。

我懷疑,SSIS可能會被重新編譯每次運行時的C#代碼。有沒有人遇到類似的問題?或者你有沒有使用過類似的過程?

是否有可以讓我們來分析一個DTSX包中的任何工具?

回答

3

由於您使用SSIS 2008年,你的腳本任務始終預編譯。

+0

這非常有幫助。謝謝。你知道任何方式來描述過程,並找出大部分時間都花在哪裏嗎? – 2010-02-02 15:12:08

+2

這裏有一些常見的提示,可以讓您在整個包中啓用日誌記錄,以瞭解各種操作的成本。如果不知道腳本任務是什麼,很難說出什麼問題。 http://msdn.microsoft.com/en-us/library/ms141031.aspx – 2010-02-02 17:21:17

1

您確定這是腳本任務嗎?

我有它內置許多字典一些廣泛的腳本任務,如果看到一個輸入值根據瘋狂的複雜的業務邏輯在各種字典,做翻譯等工作。在任務初始化中購買構建字典一次,而不是在每一行方法中,處理都會大大改進,正如您所期望的那樣。但這是一個非常特殊的情況。

封裝的組件將被驗證(每個控制流組件運行或者在開始或前右),這是一些開銷,你不能離開。

您是否正在處理SSIS中的單個循環中的所有文件?在這種情況下,數據流驗證不應該重複。

+0

這些文件正在控制流內的單個循環中處理。數據流不包含循環,但包含運行c#腳本的3個步驟。我應該將循環移出控制流程嗎? – 2010-02-01 23:45:08

+0

@scurial是否在您的循環內的數據流上設置了DelayValidation?我認爲它應該只驗證一次,但在循環內部,我不確定。是否可以合併3個腳本?這些腳本有多複雜 - 在行處理方法中初始化的大量數據應該在行方法之外更好地初始化。 – 2010-02-02 15:27:40

相關問題