Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
SSIS Integration Runtime di Azure Data Factory
Sebelum eksekusi, tugas aliran data memeriksa komponennya dan menghasilkan rencana eksekusi untuk setiap urutan komponen. Bagian ini menyediakan detail tentang rencana eksekusi, cara melihat rencana, dan bagaimana buffer input dan output dialokasikan berdasarkan rencana eksekusi.
Memahami Rencana Eksekusi
Rencana eksekusi berisi utas sumber dan alur kerja, dan setiap utas berisi daftar kerja yang menentukan daftar kerja output untuk utas sumber atau daftar kerja input dan output untuk utas kerja. Utas sumber dalam rencana eksekusi mewakili komponen sumber dalam aliran data dan diidentifikasi dalam rencana eksekusi oleh SourceThreadn, di mana n adalah jumlah berbasis nol dari utas sumber.
Setiap utas sumber membuat buffer, mengatur pendengar, dan memanggil PrimeOutput metode pada komponen sumber. Di sinilah eksekusi dimulai dan data berasal, karena komponen sumber mulai menambahkan baris ke buffer output yang disediakan oleh tugas aliran data. Setelah utas sumber berjalan, keseimbangan pekerjaan didistribusikan di antara utas kerja.
Alur kerja mungkin berisi daftar kerja input dan output dan diidentifikasi dalam rencana eksekusi sebagai WorkThreadn, di mana n adalah nomor berbasis nol dari utas kerja. Utas ini berisi daftar kerja output saat grafik berisi komponen dengan output asinkron.
Contoh rencana eksekusi berikut mewakili aliran data yang berisi komponen sumber yang terhubung ke transformasi dengan output asinkron yang terhubung ke komponen tujuan. Dalam contoh ini, WorkThread0 berisi daftar kerja output karena komponen transformasi memiliki output asinkron.
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
Catatan
Rencana eksekusi dihasilkan setiap kali paket dijalankan, dan dapat diambil dengan menambahkan penyedia log ke paket, mengaktifkan pengelogan, dan memilih peristiwa PipelineExecutionPlan .
Memahami Alokasi Buffer
Berdasarkan rencana eksekusi, tugas aliran data membuat buffer yang berisi kolom yang ditentukan dalam output komponen aliran data. Buffer digunakan kembali saat data mengalir melalui urutan komponen, sampai komponen dengan output asinkron ditemui. Kemudian, buffer baru dibuat, yang berisi kolom output output asinkron dan kolom output komponen hilir.
Selama eksekusi, komponen memiliki akses ke buffer di sumber atau utas kerja saat ini. Buffer adalah buffer input, yang disediakan oleh ProcessInput metode , atau buffer output, yang disediakan oleh PrimeOutput metode . Properti Mode juga PipelineBuffer mengidentifikasi setiap buffer sebagai buffer input atau output.
Komponen transformasi dengan output asinkron menerima buffer input yang ada dari ProcessInput metode , dan menerima buffer output baru dari PrimeOutput metode . Komponen transformasi dengan output asinkron adalah satu-satunya jenis komponen aliran data yang menerima buffer input dan output.
Karena buffer yang disediakan untuk komponen kemungkinan berisi lebih banyak kolom daripada yang dimiliki komponen dalam koleksi kolom input atau outputnya, pengembang komponen dapat memanggil FindColumnByLineageID metode untuk menemukan kolom di buffer dengan menentukan LineageID-nya.