2013-11-01 65 views
0

對執行SQL任務的結果集大小是否有限制?如果是,那麼我們如何處理結果集的多餘部分?執行SQL任務 - 對結果集大小的任何限制?

爲什麼我問這個?我打算通過執行SQL任務(PREFERRED)將4-5 GB大小的記錄集存入內存,並使用它來生成sql語句。這些sql語句將用於將數據加載到目標表中。

+1

可用的內存和磁盤空間是您唯一的限制。哦,和*時間*。這很可能是你首先用這種方法耗盡的一個。 – RBarryYoung

+0

@RBarryYoung - 如何找到確切的內存和磁盤空間限制?如果需要,我如何改變它們? – Steam

+0

*有*沒有任何確切的限制。只有可用性限制。你只限於可用的東西,就像任何過程一樣。 – RBarryYoung

回答

1

正如@RBarry Young所述,您的執行SQL任務轉儲結果只會受到計算機上/ SSIS可用內存量的限制。

當數據流中的內存不足時,會發生什麼情況?SSIS將使用BufferTempStoragePath中指定的位置將數據寫入磁盤和性能容器。 What is the actual use of buffer temp and blob temp in ssis

我在控制流程中看不到模擬,這很有意義,因爲它通常不是代碼的內存密集部分。測試它並找出答案。如果內存不足並且SSIS變得沉悶起來,那麼您可能需要將您的邏輯移入腳本任務,然後嘗試管理您的內存,而不是一次保存整個集合。

這就是說,我幾乎認爲你正在努力構建你自己的插入語句。這類似於編寫自己的數據流,但可能不如SSIS所做的那樣高效。

+0

感謝您的所有觀點。我幾乎100%肯定我沒有別的選擇。我的ETL並不簡單。目標映射的源不是固定的,只能通過查詢映射表來決定。還有其他複雜性。這就是爲什麼我必須使用大多數腳本。 – Steam

相關問題