Istnieje kilka blogów, które twierdzą, że kategoryzują transformacje SSIS na blokujące (asynchroniczne), nieblokujące (synchroniczne) i częściowo blokujące (asynchroniczne).
Patrząc na konkretne pytanie: czy multiemisja jest synchroniczna (nieblokująca) czy asynchroniczna (częściowo blokująca)?
Jeden z zasobów twierdzi, że jest asynchroniczny: „Multicast to asynchroniczna (znana również jako częściowo blokująca) transformacja” źródło: http://social.technet.microsoft.com/wiki/contents/articles/7392.ssis-multicast-transformation.aspx
i kolejna synchroniczna: https://jorgklein.com/2009/04/14/ssis-lookup-is-case-sensitive/
Inne zasoby twierdzą, że transformacja oczyszczania DQS jest transformacją nieblokującą, ale wydaje mi się, że częściowo blokuje.
Proszę nie odpowiadać linkiem do listy przekształceń pogrupowanych według typu. Odpowiedź na to pytanie, miejmy nadzieję, umożliwi bardziej rygorystyczną metodę POTWIERDZENIA poprawnej odpowiedzi.
Ponieważ transformacje częściowo blokujące i blokujące przenoszą dane do nowych buforów, w przeciwieństwie do nieblokujących, które działają na buforze w miejscu, podejrzewam, że rozwiązaniem będzie obserwowanie tworzenia bufora podczas wykonywania transformacji, ale nie jestem pewien (a ), jeśli da to ostateczną odpowiedź i (b) jak to zrobić.
Wierzę, że nieblokująca transformacja nie spowoduje uruchomienia nowego drzewa wykonania, więc możliwe jest, że odpowiedź leży w logowaniu PipelineExectionTrees i PipelineExecutionPlan. Może to rozróżniać między synchronicznym i asynchronicznym, ale może nie rozróżniać między częściowym i całkowitym blokowaniem.
źródło
Odpowiedzi:
Blokująca operacja musi poczekać, aż wszystkie wiersze zostaną wyświetlone i obsłużone, zanim zacznie zapełniać bufory.
Operacje, które częściowo blokują, zapisują dane w nowych buforach, które są obsługiwane przez następną operację dopiero po zapełnieniu każdego bufora (zwykle poniżej 10 000 wierszy).
Operacja nieblokująca może mieć następną operację działającą na tym samym buforze, ponieważ każdy wiersz jest obsługiwany.
Jednak wiele tekstów będzie nazywać „częściowym blokowaniem” jako „nieblokującym”, ponieważ zachowanie jest znacznie bliższe „nieblokowaniu” niż „blokowaniu”.
Powinieneś być w stanie powiedzieć, co się dzieje, obserwując przepływ danych i obserwując, kiedy liczba rośnie w każdym punkcie.
źródło