2009-01-05 70 views

回答

3

如果您將它們視爲與數據庫的連接,它們就像線程安全一樣。我認爲更關鍵的問題是當包裹碰到它時,表格將被鎖定。

SSIS包只能做它被告知要做的事情。如果您正在轉換表格,則在操作生效時可能會被鎖定。如果他們沒有首先超時,這將迫使工作或多或少連續。如果你正在處理數據,你可能會逃避並行運行的東西。

所以你的問題的答案是「是的,但是」。它是底層的數據訪問,將決定事情是否可以並行運行。

+0

這是很酷的SQL服務器將爲您處理所有的鎖定。 – 2009-01-05 16:15:46

+0

好的,那正是我在想的,所以調用SSIS就像調用網頁或Web服務一樣。 – Blankman 2009-01-05 16:16:02

0

是的,SSIS包是線程安全的。您也可以通過多種方式控制併發:

  • 一個單獨的包可以被設置爲 運行的線程數量有限。包屬性'MaxConcurrentExecutables'控制着這個。

  • 按順序運行的程序包可以是 ,它們與依賴關係一起建立。你可以在一個包中或從調用子包的主包中執行此操作。

  • 的MaxConcurrentThreads屬性可以在命令行上如果需要減少鎖定和爭用問題,您可以設置事務隔離性能或NOLOCK提示寫數據庫查詢重寫爲DTExec.exe

。很顯然,您需要密切注意任何潛在的併發或髒讀取問題。

您可以使用運行包的數據庫上的分析器或perfmon來查找鎖定問題的跡象。不用長時間討論數據庫調優問題,這本身就是一個相當大的話題,在鎖存和鎖定等待統計數據中尋找大數字是可能的瓶頸跡象。

相關問題