Udostępnij za pośrednictwem


Execution Plan and Buffer Allocation

Przed wykonaniem zadanie przepływ danych sprawdza, czy w jego części i generuje plan wykonania dla każdej kolejności składników.Ta sekcja zawiera szczegółowe informacje dotyczące plan wykonania, jak do wyświetlania planu i w jaki sposób wejściowe i wyjściowe bufory są przydzielane na podstawie planu wykonania.

Opis plan wykonania

Plan wykonania zawiera urządzenie źródłowe wątek i wątek roboczych i każdego wątek zawiera listy pracy, określające wyników pracy list dla wątek urządzenie źródłowe lub dane wejściowe i wyjściowe działać list dla wątek roboczych.Wątki urządzenie źródłowe plan wykonania reprezentują składników źródłowy przepływ danych i są identyfikowane w planów wykonywania przez SourceThreadn, where n jest od zera numer wątek urządzenie źródłowe.

Każdy wątek urządzenie źródłowe tworzy buforu, ustawia odbiornika i wywołuje PrimeOutput(Int32, array<Int32[], array<PipelineBuffer[]) Metoda składnika urządzenie źródłowe. Jest to w przypadku, gdy rozpoczyna się wykonywanie i dane pochodzą, zostanie uruchomiony składnik urządzenie źródłowe Dodawanie buforów wierszy w danych wyjściowych, które są dostarczane do niego przez zadanie przepływ danych.Po wątków źródłowy jest uruchomiony, saldo praca zostanie rozdzielona między wątków roboczych.

Wątek pracy może zawierać obie listy wejściowe i wyjściowe pracy i jest identyfikowany w plan wykonania jako WorkThreadn, where n jest od zera numer wątku roboczego.Tych wątków zawierają dane wyjściowe pracy listy, jeśli wykres zawiera składnik z asynchronicznego wyjść.

Następujący przykładowy plan wykonania reprezentuje przepływ danych, zawierający składnik urządzenie źródłowe podłączony do przekształcania o asynchronicznego wyjściowej podłączony do składnika docelowego.W tym przykładzie WorkThread0 zawiera listę pracy wyjściowego, ponieważ składnik transformacja asynchronicznej danych wyjściowych.

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

Uwaga

Zostanie wygenerowany plan wykonania każdej czas pakiet zostanie wykonana i może być przechwycone przez dodanie do pakietu, umożliwiając rejestrowanie, a następnie wybierając dostawca dziennika PipelineExecutionPlan zdarzenie.

Opis alokacji buforu

W zależności od plan wykonania zadania przepływ danych tworzy bufory, które zawierają w kolumnach wyznaczonych w wyjść składników przepływ danych.Bufor jest używana wielokrotnie jako przepływów danych za pomocą sekwencji składników, aż do chwili, kiedy składnik z asynchronicznego wyjść.Nowa buforu tworzona jest, który zawiera kolumn wyjściowych asynchronicznej danych wyjściowych i kolumny wyjściowe niższego rzędu składników.

Podczas wykonywania składniki mają dostęp do buforu w bieżącym wątek urządzenie źródłowe lub pracy.Bufor jest albo wprowadzania bufor przez, dostarczone przez ProcessInput(Int32, PipelineBuffer) Metoda lub buforu wyjściowego dostarczonych przez PrimeOutput(Int32, array<Int32[], array<PipelineBuffer[]) Metoda. The Mode() właściwość of the PipelineBuffer also identifies each buffer as an input or output buffer.

Składniki transformacja z asynchronicznego wyjść odbierać istniejących buforu wejściowego z ProcessInput(Int32, PipelineBuffer) metody i odebrać nowe bufor wyjściowy z PrimeOutput(Int32, array<Int32[], array<PipelineBuffer[]) Metoda. Składnik transformacja z wyjść asynchronicznej jest to jedyny typ składnik przepływ danych który odbiera dane wejściowe i bufor przez dane wyjściowe.

Ponieważ bufor, dostarczane ze składnikiem jest mogących zawierać ma więcej kolumn niż składnika w swojej kolekcji kolumna wejściowego lub wyjściowego, składnik deweloperzy mogą wywoływać FindColumnByLineageID(Int32, Int32) Metoda, aby określić położenie kolumna w buforze za jego LineageID.

Integration Services icon (small) Konfiguracja w aktualizacji z usług integracja Services pobytu

Najnowsze pliki do pobrania, artykuły, próbki, i pliki wideo firmy Microsoft, jak również wybranego rozwiązania od Wspólnoty, odwiedź witrynę Integration Services strona w witrynie MSDN lub TechNet:

Automatycznego powiadomienie tych aktualizacji należy subskrybować źródła danych RSS, które jest dostępne strona.