疑難排解封裝開發

Integration Services 包含在 Business Intelligence Development Studio 中開發封裝時可以用於疑難排解封裝的功能和工具。

疑難排解設計階段驗證問題

當您在 BI Development Studio 開發封裝時,有時候可能會無法連接到資料來源,或者要等到封裝的先前工作已經於執行階段執行時,才能驗證封裝的某些部分。Integration Services 包含下列功能,可協助您避免因這些狀況而造成的驗證錯誤:

  • 當無法連接到資料來源時,請離線工作。通常,「SSIS 設計師」會試圖連接到封裝所使用的每一個資料來源,以驗證與來源及目的地相關聯的中繼資料,這時如果無法連接到資料來源,就會造成驗證錯誤。若要避免在這個時候進行連接,您可以啟用 [SSIS] 功能表上的 [離線工作]。不同於 DelayValidation 屬性,在尚未開啟封裝之前,[離線工作] 就已經可供使用。您也可以啟用 [離線工作] 來加速設計師中的作業,並只有在想要驗證封裝時才停用這個功能。

  • 在執行階段前無效的封裝元素上設定 DelayValidation 屬性。您可以將封裝元素 (其組態在設計階段無效) 的 DelayValidation 設為 True,以避免發生驗證錯誤。例如,您可能有一項會使用目的地資料表的資料流程工作,而這個目的地資料表卻要等到執行 SQL 工作在執行階段建立資料表後才會存在。DelayValidation 屬性可以在封裝層級啟用,也可以在封裝所包含的個別工作和容器層級啟用。一般而言,當您部署封裝時,必須讓相同封裝元素上的這個屬性設為 True,以避免在執行階段發生相同的驗證錯誤。

    您可以針對資料流程工作設定 DelayValidation 屬性,但無法針對個別資料流程元件設定這個屬性。將個別資料流程元件的 ValidateExternalMetadata 屬性設為 false,也可以達到類似的效果。不過,當這個屬性的值是 false 時,元件不會察覺對外部資料來源之中繼資料所做的變更。

如果發生驗證時,此封裝所使用的資料庫物件遭到鎖定,驗證程序可能會停止回應。在這些情況下,SSIS 設計師也會停止回應。您可以使用 Management Studio 來關閉 SQL Server 中的關聯工作階段,以便繼續驗證。您也可以使用本節所述的設定來避開此問題。

重要事項重要事項

使用 DTC 交易 (TransactionOption 屬性 = required) 執行封裝,並在資料流程元件 (ValidateExternalMetadata 屬性 = true) 中驗證外部中繼資料時,在下列情況下封裝可能會停止:在執行資料流程之前其他工作已經存在於 DTC 交易時,以及 [資料表或檢視表][資料表名稱或檢視表名稱變數] 當做 OLE DB 目的地的資料存取方法使用時。在此狀況下,已經在執行的其他工作會阻止驗證程序。這是因為用於驗證的連線絕不會編列在 DTC 交易中。這是預設行為。為避免這個情況,請將資料流程元件 ValidateExternalMetadata 屬性設為 false。

疑難排解控制流程

Integration Services 包含下列功能與工具,可以用來在封裝開發期間疑難排解封裝中的控制流程:

  • 設定工作、容器及封裝的中斷點。可以使用「SSIS 設計師」提供的圖形工具來設定中斷點。中斷點可以在封裝層級啟用,也可以在封裝包含之個別工作和容器層級啟用。有些工作和容器會提供設定中斷點的其他中斷條件,例如,您可以在「For 迴圈」容器上啟用中斷條件,以便在迴圈的每個反覆運算開始時暫停執行。

  • 使用偵錯視窗。執行具有中斷點的封裝時,Business Intelligence Development Studio 中的偵錯視窗可讓您存取變數值和狀態訊息。

  • 檢視 [進度] 索引標籤上的資訊。「SSIS 設計師」會提供在 Business Intelligence Development Studio 中執行封裝時控制流程的其他資訊。[進度] 索引標籤會以執行順序列出工作和容器,並包含每個工作和容器 (包括封裝本身) 的開始與完成時間、警告及錯誤訊息。

如需這些功能的詳細資訊,請參閱<偵錯控制流程>。

疑難排解資料流程

Integration Services 包含下列功能與工具,可以用來在封裝開發期間疑難排解封裝中的資料流程:

  • 只使用部分資料進行測試。如果只使用資料集的範例來疑難排解封裝中的資料流程,則可以包括「百分比取樣」或「資料列取樣」轉換,以在執行階段建立內嵌資料範例。如需詳細資訊,請參閱<百分比取樣轉換>和<資料列取樣轉換>。

  • 使用資料檢視器監看資料在資料流程中的移動。資料檢視器會在資料於來源、轉換和目的地之間移動時顯示資料值。資料檢視器可以在方格、長條圖、散佈圖或直條圖中顯示資料。您可以將資料檢視器中的資料複製到 [剪貼簿] 中,然後將資料貼到檔案或 Excel 試算表中。如需詳細資訊,請參閱<如何:將資料檢視器加入資料流程>。

  • 設定支援錯誤輸出之資料流程元件中的錯誤輸出。許多資料流程來源、轉換和目的地也都支援錯誤輸出。經由設定資料流程元件的錯誤輸出,可以將有錯誤的資料導向其他目的地;例如,您可以在另一個文字檔中擷取失敗或被截斷的資料。您也可以將資料檢視器附加至錯誤輸出,並且只檢查錯誤的資料。在設計階段,錯誤輸出會擷取有問題的資料值,協助您開發可有效處理實際資料的封裝。不過,其他疑難排解工具與功能通常都只能用於設計階段,但錯誤輸出即使在實際執行環境中還是很有用。如需詳細資訊,請參閱<處理資料流程中的錯誤>。

  • 擷取已處理的資料列計數。當您在「SSIS 設計師」中執行封裝時,經由路徑傳送的資料列數目會顯示在資料流程設計師中。隨著資料不斷經由路徑移動,這個數目會定期更新。您也可以將「資料列計數」轉換加入資料流程,以擷取變數中的最後資料列計數。如需詳細資訊,請參閱<資料列計數轉換>。

  • 檢視 [進度] 索引標籤上的資訊。「SSIS 設計師」會提供在 Business Intelligence Development Studio 中執行封裝時資料流程的其他資訊。[進度] 索引標籤會以執行順序列出資料流程元件,並包含封裝每個階段的進度資訊 (以完成百分比顯示),以及包含寫入目的地之資料列數目的資訊。

如需這些功能的詳細資訊,請參閱<偵錯資料流程>。

疑難排解指令碼

Microsoft Visual Studio Tools for Applications (VSTA) 是一種開發環境,您會在此環境中撰寫指令碼工作和指令碼元件所使用的指令碼。VSTA 包含下列功能與工具,可以用來在封裝開發期間針對指令碼進行疑難排解:

  • **在指令碼工作的指令碼中設定中斷點。**VSTA 只針對指令碼工作中的指令碼提供偵錯支援。在指令碼工作中設定的中斷點會與封裝中設定的中斷點,以及封裝中的工作和容器整合,以便可以對所有的封裝元素進行嚴密的偵錯。

    [!附註]

    當您為包含多個指令碼工作的封裝偵錯時,偵錯工具只會在一個指令碼工作中叫用中斷點,而且將會忽略其他指令碼工作中的中斷點。如果指令碼工作是 [Foreach 迴圈] 或 [For 迴圈] 容器的一部分,偵錯工具會在迴圈的第一次反覆運算後,忽略指令碼工作中的中斷點。

如需詳細資訊,請參閱<偵錯指令碼>。如需有關如何偵錯指令碼元件的建議,請參閱<指令碼元件的程式碼撰寫和偵錯>。

疑難排解沒有隨附描述的錯誤

如果您在封裝開發期間遇到沒有隨附描述的 Integration Services 錯誤號碼,可以在<SSIS 錯誤和訊息參考>中找到描述。清單這次沒有包含疑難排解資訊。

Integration Services 圖示 (小) 掌握 Integration Services 的最新狀態

若要取得 Microsoft 的最新下載、文件、範例和影片以及社群中的選定解決方案,請瀏覽 MSDN 或 TechNet 上的 Integration Services 頁面:

若要得到這些更新的自動通知,請訂閱該頁面上所提供的 RSS 摘要。