Yürütme planı ve arabellek ayırma
Önce yürütme, veri akışı görevi bileşenlerinden inceler ve bileşenlerinin her sıra için yürütme planı oluşturur.Bu bölüm, yürütme planı ayrıntılarını nasıl sağladığını plandaki görüntülemek ve nasıl giriş ve çıkış arabelleği yürütme planına dayanarak tahsis edilen.
Yürütme planı'nı anlama
Kaynak iş parçacıkları ve çalışma iş parçacıkları yürütme planı içerir ve giriş ve çıkış listeler çalışma iş parçacığı için iş ve her iş parçacığı çıkış iş listeleri kaynak iş parçacıkları için belirttiğiniz çalışma listelerini içerir.Yürütme planı içinde kaynak iş parçacıkları veri akışı kaynak bileşenleri temsil eder ve yürütme planı tarafından tanımlanan SourceThreadn, where n sıfır tabanlı kaynak iş parçacığı sayısıdır.
Her kaynak iş parçacığı bir arabellek oluşturur, dinleyici, ayarlar ve PrimeOutput(Int32, array<Int32[], array<PipelineBuffer[]) Kaynak bileşeni yöntem. Yürütme başlatır ve veri kaynaklandığı, kendisine veri akışı görevi tarafından sağlanan bir çıktı arabelleği için satır ekleme kaynak bileşenini başlatır olarak budur.Çalışan iş parçacıklarının kaynak sonra iş bakiyesini iş, iş parçacığı arasında dağıtılır.
Bir çalışma iş parçacığının iki giriş ve çıkış iş listelerini içerebilir ve yürütme planı tanımlanan WorkThreadn, where n sıfır tabanlı iş parçacığı sayısıdır.Grafik bir zaman uyumsuz çıkışlarını bileşeni içerdiğinde, bu iş parçacığı çıkış iş listeleri içerir.
Aşağıdaki örnek yürütme planı dönüştürme için bir hedef bileşenine bağlı olarak zaman uyumsuz bir çıktı ile bağlı olan bir kaynak bileşeni içeren veri akışı temsil eder.Bu örnekte, zaman uyumsuz bir çıkış dönüştürme bileşeni olduğu için bir Çıkış iş listesi WorkThread0 içerir.
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
Not
Yürütme planı oluşturulan her bir paket yürütülür ve paket seçme ve günlüğünü etkinleştirmek için bir günlük sağlayıcısı ekleyerek yakalanan PipelineExecutionPlan olay.
Arabellek ayırma anlama
veri akışı görevi üzerinde yürütme planı bağlı olarak, veri akışı bileşenleri çıkışlarını ilgili olarak içinde tanımlanan sütunları içeren arabellekleri oluşturur.Bir zaman uyumsuz çıkışlarını bileşeni karşılaşılana kadar sıra bileşenlerinin üzerinden veri akışı olarak arabelleğin yeniden.Ardından, zaman uyumsuz çıktı çıktı sütunları ve akış yönündeki bileşenlere çıktı sütunlarını içeren yeni bir arabellek oluşturulur.
Yürütme sırasında bileşenleri arabellek geçerli kaynak ya da iş parçacığı parçacığında erişebilirsiniz.Tarafından sağlanan herhangi bir giriş arabellek, arabellek olan ProcessInput(Int32, PipelineBuffer) yöntem veya tarafından sağlanan bir çıkış arabelleği, PrimeOutput(Int32, array<Int32[], array<PipelineBuffer[]) yöntem. The Mode() özellik of the PipelineBuffer also identifies each buffer as an input or output buffer.
Varolan giriş arabelleğinden dönüştürme bileşenleri zaman uyumsuz bir çıkış alırsınız ProcessInput(Int32, PipelineBuffer) yöntem, yeni çıkış arabelleğinden alıp PrimeOutput(Int32, array<Int32[], array<PipelineBuffer[]) yöntem. Bir zaman uyumsuz çıkışlarını dönüştürme bileşeniyle bir girişi hem de bir çıkış arabelleği aldığı veri akışı bileşeni yalnızca türüdür.
Bir bileşen için sağlanan arabellek bulunma olasılığı olduğundan, bileşen'den daha fazla sütun varsa, girdi veya çıktı sütunu topluluklar, bileşen geliştiricileri çağırabileceğiniz FindColumnByLineageID(Int32, Int32) yöntem bir sütun belirterek arabellekte konumunu belirlemek için LineageID.
|