共用方式為


執行計劃和緩衝區配置

在執行之前,資料流程工作會檢查其元件並為元件的每個順序產生執行計劃。 本節提供有關執行計劃的詳細資料、如何檢視計劃以及輸入與輸出緩衝區如何根據執行計劃配置。

了解執行計劃

任何執行計劃都包含來源執行緒與工作執行緒,而且每個執行緒都包含工作清單,以指定來源執行緒的輸出工作清單,或是工作執行緒的輸入與輸出工作清單。 執行計劃中的來源線程代表數據流中的來源元件,並且由SourceThread**n在執行計劃中識別,其中 n是來源線程以零起始的數位。

每個來源執行緒會建立一個緩衝區、設定接聽程式,並且呼叫來源元件的 PrimeOutput 方法。 這是執行開始和資料起源的地方,即來源元件開始將資料列加入資料流程工作所提供的輸出緩衝區。 在來源執行緒執行之後,會將工作平衡地散佈在工作執行緒之間。

工作線程可以同時包含輸入和輸出工作清單,且在執行計劃中識別為 WorkThread**n,其中 n 是工作線程以零起始的數位。 當圖表包含具有非同步輸出的元件時,這些執行緒會包含輸出工作清單。

下列範例執行計劃代表一個資料流程,其中包含連接到轉換的來源元件,而該轉換則帶有連接到目的地元件的非同步輸出。 在此範例中,WorkThread0 包含輸出工作清單,因為轉換元件具有非同步輸出。

SourceThread0   
    Influences: 72 158   
    Output Work List   
        CreatePrimeBuffer of type 1 for output id 10   
        SetBufferListener: "WorkThread0" for input ID 73   
        CallPrimeOutput on component "OLE DB Source" (1)   
    End Output Work List   
    This thread drives 0 distributors   
End SourceThread0   
WorkThread0   
    Influences: 72 158   
    Input Work list, input ID 73   
        CallProcessInput on input ID 73 on component "Sort" (72) for view type 2   
    End Input Work list for input 73   
    Output Work List   
        CreatePrimeBuffer of type 3 for output id 74   
        SetBufferListener: "WorkThread1" for input ID 171with internal handoff   
        CallPrimeOutput on component "Sort" (72)   
    End Output Work List   
    This thread drives 0 distributors   
End WorkThread0   
WorkThread1   
    Influences: 158   
    Input Work list, input ID 171  
        CallProcessInput on input ID 171 on component "OLE DB Destination" (158) for view type 4  
    End Input Work list for input 171   
    Output Work List   
    End Output Work List   
    This thread drives 0 distributors   
End WorkThread1  

注意

每次執行套件時,就會產生執行計畫,而且透過將記錄提供者新增至套件,就可以擷取該計畫,以允許記錄和選取 PipelineExecutionPlan 事件。

了解緩衝區配置

根據執行計劃,資料流程工作會建立緩衝區,以包含資料流程元件的輸出中所定義的資料行。 當資料流經元件的順序時,會重複使用緩衝區,直到遇到非同步輸出的元件為止。 接著會建立新緩衝區,它包含非同步輸出的輸出資料行,以及下游元件的輸出資料行。

在執行期間,元件可以存取目前來源或是工作執行緒中的緩衝區。 緩衝區可能是由 ProcessInput 方法所提供的輸入緩衝區,或是由 PrimeOutput 方法所提供的輸出緩衝區。 ModePipelineBuffer 屬性也可將每個緩衝區識別為輸入或是輸出緩衝區。

具有非同步輸出的轉換元件會從 ProcessInput 方法接收現有輸入緩衝區,並從 PrimeOutput 方法接收新輸出緩衝區。 具有非同步輸出的轉換元件是唯一會接收輸入和輸出緩衝區的資料流程元件類型。

由於提供給元件的緩衝區可能包含的數據行數目比元件在其輸入或輸出數據行集合中擁有的數據行多,因此元件開發人員可以藉由指定 其 LineageID來呼叫 FindColumnByLineageID 方法,在緩衝區中尋找數據行。

Integration Services 圖示 (小型) 使用 Integration Services 保持最新狀態
如需來自Microsoft的最新下載、文章、範例和影片,以及來自社群的所選解決方案,請流覽 MSDN 上的 Integration Services 頁面:

流覽 MSDN 上的 Integration Services 頁面

如需這些更新的自動通知,請訂閱頁面上可用的 RSS 摘要。