2013-05-09

認識 Integration Services 交易(transactions) - 以 SSIS 2012 為例


示範版本:SQL Server 2012
開發工具:SSDT - Visual Studio 2012

認識 Integration Services 交易(transactions) - 以 SSIS 2012 為例

封裝使用交易將工作執行的資料庫動作繫結至原子單位,這樣可以保持資料的完整性。

所有 Microsoft Integration Services 容器類型 (封裝、For 迴圈、Foreach 迴圈和時序容器,以及封裝每個工作的工作主機) 皆可設定成使用交易。

 Integration Services 提供三個設定交易的選項,分別是 NotSupported、Supported 及 Required。

(1) Required 指出容器會啟動交易,除非其父容器已經將其啟動。

如果交易已經存在,則容器會聯結交易。

例如,如果未設定為支援交易的封裝包括使用 Required 選項的「時序」容器,則「時序」容器會啟動其自己的交易。

如果封裝設定為使用 Required 選項,則「時序」容器會聯結封裝交易。

(2) Supported 指出容器不啟動交易,但會聯結其父容器啟動的任何交易。

例如,如果具有四個「執行 SQL」工作的封裝啟動交易,且全部四個工作都使用 Supported 選項,則任何工作失敗時,都會回復「執行 SQL」工作執行的資料庫更新。

如果封裝未啟動交易,則四個「執行 SQL」工作不會由交易繫結,且只會回復由失敗之工作執行的資料庫更新。

(3) NotSupported 指出容器不啟動交易或聯結現有的交易。

父容器啟動的交易不會影響已設定為不支援交易的子容器。

例如,如果封裝設定為啟動交易,且封裝中的「For 迴圈」容器使用 NotSupported 選項,則「For 迴圈」中的工作一旦失敗將無法回復。




影片:
認識 Integration Services 交易(transactions) - 以 SSIS 2012 為例




設定封裝來使用交易

將封裝設定成使用交易時,您有兩個選項:

(1) 擁有封裝的單一交易。

在此情況下,封裝本身會「起始」(Initiate) 這筆交易,而封裝中的個別工作和容器會參與這個單一交易。

(2) 在封裝中擁有多個交易。

在此情況下,雖然封裝支援交易,但是封裝中的個別工作和容器實際上會起始交易。





參考資料

Integration Services 交易
http://technet.microsoft.com/zh-tw/library/ms137690.aspx

設定封裝來使用交易
http://technet.microsoft.com/zh-tw/library/ms141144.aspx

設定封裝屬性
http://technet.microsoft.com/zh-tw/library/ms137749.aspx

沒有留言:

張貼留言