Bagikan melalui


Pengelogan Integration Services (SSIS)

SQL Server Integration Services mencakup penyedia log yang dapat Anda gunakan untuk menerapkan pengelogan dalam paket, kontainer, dan tugas. Dengan pengelogan, Anda dapat mengambil informasi run-time tentang paket, membantu Anda mengaudit dan memecahkan masalah paket setiap kali dijalankan. Misalnya, log dapat mengambil nama operator yang menjalankan paket dan waktu paket dimulai dan selesai.

Anda dapat mengonfigurasi cakupan pengelogan yang terjadi selama eksekusi paket di server Layanan Integrasi. Untuk informasi selengkapnya, lihat Mengaktifkan Pengelogan untuk Eksekusi Paket di Server SSIS.

Anda juga dapat menyertakan pengelogan saat menjalankan paket menggunakan utilitas prompt perintah dtexec . Untuk informasi selengkapnya tentang argumen prompt perintah yang mendukung pengelogan, lihat Utilitas dtexec.

Mengonfigurasi Pengelogan di SQL Server Data Tools

Log dikaitkan dengan paket dan dikonfigurasi pada tingkat paket. Setiap tugas atau kontainer dalam paket dapat mencatat informasi ke log paket apa pun. Tugas dan kontainer dalam paket dapat diaktifkan untuk pengelogan meskipun paket itu sendiri tidak. Misalnya, Anda dapat mengaktifkan pengelogan pada tugas Jalankan SQL tanpa mengaktifkan pengelogan pada paket induk. Paket, kontainer, atau tugas dapat menulis ke beberapa log. Anda hanya dapat mengaktifkan pengelogan pada paket, atau Anda dapat memilih untuk mengaktifkan pengelogan pada tugas atau kontainer individual apa pun yang disertakan paket.

Saat Anda menambahkan log ke paket, Anda memilih penyedia log dan lokasi log. Penyedia log menentukan format untuk data log: misalnya, database SQL Server atau file teks.

Layanan Integrasi mencakup penyedia log berikut:

  • Penyedia log File Teks, yang menulis entri log ke file teks ASCII dalam format nilai yang dipisahkan koma (CSV). Ekstensi nama file default untuk penyedia ini adalah .log.

  • Penyedia log SQL Server Profiler, yang menulis jejak yang dapat Anda lihat menggunakan SQL Server Profiler. Ekstensi nama file default untuk penyedia ini adalah .trc.

    Catatan

    Anda tidak dapat menggunakan penyedia log SQL Server Profiler dalam paket yang berjalan dalam mode 64-bit.

  • Penyedia log SQL Server, yang menulis entri log ke sysssislog tabel dalam database SQL Server.

  • Penyedia log Peristiwa Windows, yang menulis entri ke log Aplikasi di log Peristiwa Windows di komputer lokal.

  • Penyedia log File XML, yang menulis file log ke file XML. Ekstensi nama file default untuk penyedia ini adalah .xml.

Jika Anda menambahkan penyedia log ke paket atau mengonfigurasi pengelogan secara terprogram, Anda dapat menggunakan ProgID atau ClassID untuk mengidentifikasi penyedia log, alih-alih menggunakan nama yang Designer SSIS tampilkan dalam kotak dialog Konfigurasi Log SSIS.

Tabel berikut mencantumkan ProgID dan ClassID untuk penyedia log yang disertakan Layanan Integrasi, dan lokasi log tempat penyedia log menulis.

Penyedia log ProgID ClassID Lokasi
File teks DTS. LogProviderTextFile {0A039101-ACC1-4E06-943F-279948323883} Pengelola koneksi File yang digunakan penyedia log menentukan jalur file teks.
SQL Server Profiler DTS. LogProviderSQLProfiler {E93F6300-AE0C-4916-A7BF-A8D0CE12C77A} Pengelola koneksi File yang digunakan penyedia log menentukan jalur file yang digunakan oleh SQL Server Profiler.
SQL Server DTS. LogProviderSQLServer {94150B25-6AEB-4C0D-996D-D37d1C4FDEDA} Manajer koneksi OLE DB yang digunakan penyedia log menentukan database SQL Server yang berisi tabel sysssislog dengan entri log.
Log Peristiwa Windows DTS. LogProviderEventLog {071CC8EB-C343-4CFF-8D58-564B92FCA3CF} Log Aplikasi di Windows Event Viewer berisi informasi log Layanan Integrasi.
XML File DTS. LogProviderXMLFile {440945A4-2A22-4F19-B577-EAF5FDDC5F7A} Pengelola koneksi File yang digunakan penyedia log menentukan jalur file XML.

Anda juga dapat membuat penyedia log kustom. Untuk informasi selengkapnya, lihat Membuat Penyedia Log Kustom.

Penyedia log dalam paket adalah anggota kumpulan penyedia log paket. Saat Anda membuat paket dan menerapkan pengelogan dengan menggunakan Designer SSIS, Anda dapat melihat daftar anggota koleksi di folder Penyedia Log pada tab Penjelajah Paket di Designer SSIS.

Anda mengonfigurasi penyedia log dengan memberikan nama dan deskripsi untuk penyedia log dan menentukan manajer koneksi yang digunakan penyedia log. Penyedia log SQL Server menggunakan manajer koneksi OLE DB. Penyedia log File Teks, SQL Server Profiler, dan File XML semuanya menggunakan manajer koneksi File. Penyedia log Peristiwa Windows tidak menggunakan pengelola koneksi, karena menulis langsung ke log Peristiwa Windows. Untuk informasi selengkapnya, lihat Pengelola Sambungan OLE DB dan Pengelola Sambungan File.

Kustomisasi Pengelogan

Untuk menyesuaikan pengelogan peristiwa atau pesan kustom, Layanan Integrasi menyediakan skema informasi yang umum dicatat untuk disertakan dalam entri log. Skema log Layanan Integrasi menentukan informasi yang dapat Anda catat. Anda dapat memilih elemen dari skema log untuk setiap entri log.

Paket dan kontainer dan tugasnya tidak perlu mencatat informasi yang sama, dan tugas dalam paket atau kontainer yang sama dapat mencatat informasi yang berbeda. Misalnya, paket dapat mencatat informasi operator saat paket dimulai, satu tugas dapat mencatat sumber kegagalan tugas, dan tugas lain dapat mencatat informasi saat kesalahan terjadi. Jika paket dan kontainer dan tugasnya menggunakan beberapa log, informasi yang sama ditulis ke semua log.

Anda dapat memilih tingkat pengelogan yang sesuai dengan kebutuhan Anda dengan menentukan peristiwa yang akan dicatat dan informasi yang akan dicatat untuk setiap peristiwa. Anda mungkin menemukan bahwa beberapa peristiwa memberikan informasi yang lebih berguna daripada yang lain. Misalnya, Anda mungkin hanya ingin mencatat nama komputer dan operator untuk peristiwa PreExecute tetapi semua informasi yang tersedia untuk peristiwa Kesalahan .

Untuk mencegah file log menggunakan ruang disk dalam jumlah besar, atau untuk menghindari pengelogan yang berlebihan, yang dapat menurunkan performa, Anda dapat membatasi pengelogan dengan memilih peristiwa dan item informasi tertentu untuk dicatat. Misalnya, Anda dapat mengonfigurasi log untuk hanya mengambil tanggal dan nama komputer untuk setiap kesalahan.

Di Designer SSIS, Anda menentukan opsi pengelogan dengan menggunakan kotak dialog Konfigurasi log SSIS.

Skema Log

Tabel berikut ini menjelaskan elemen dalam skema log.

Elemen Deskripsi
Komputer Nama komputer tempat kejadian log terjadi.
Operator Identitas pengguna yang meluncurkan paket.
SourceName Nama kontainer atau tugas tempat peristiwa log terjadi.
SourceID Pengidentifikasi unik paket; kontainer For Loop, Foreach Loop, atau Sequence; atau tugas di mana peristiwa log terjadi.
ExecutionID GUID instans eksekusi paket.

Catatan: Menjalankan satu paket mungkin membuat entri log dengan nilai yang berbeda untuk elemen ExecutionID. Misalnya, saat Anda menjalankan paket di SQL Server Data Tools, fase validasi mungkin membuat entri log dengan elemen ExecutionID yang sesuai dengan SQL Server Data Tools. Namun, fase eksekusi mungkin membuat entri log dengan elemen ExecutionID yang sesuai dengan dtshost.exe. Misalnya, saat Anda menjalankan paket yang berisi tugas Execute Package, masing-masing tugas ini menjalankan paket anak. Paket anak ini mungkin membuat entri log yang memiliki elemen ExecutionID yang berbeda dari entri log yang dibuat paket induk.
MessageText Pesan yang terkait dengan entri log.
DataByte Array byte khusus untuk entri log. Arti bidang ini bervariasi menurut entri log.

Tabel berikut ini menjelaskan tiga elemen tambahan dalam skema log yang tidak tersedia pada tab Detail dari kotak dialog Konfigurasi Log SSIS .

Elemen Deskripsi
Waktu mulai Waktu di mana kontainer atau tugas mulai berjalan.
Akhir waktu Waktu saat kontainer atau tugas berhenti berjalan.
DataCode Nilai bilangan bulat opsional yang biasanya berisi nilai dari DTSExecResult enumerasi yang menunjukkan hasil menjalankan kontainer atau tugas:

0 - Berhasil

1 - Kegagalan

2 - Selesai

3 - Dibatalkan
Entri Log

Integration Services mendukung entri log pada peristiwa yang telah ditentukan sebelumnya dan menyediakan entri log kustom untuk banyak objek Layanan Integrasi. Kotak dialog Konfigurasi log SSIS di SSIS Designer mencantumkan peristiwa ini dan entri log kustom.

Tabel berikut ini menjelaskan peristiwa yang telah ditentukan sebelumnya yang dapat diaktifkan untuk menulis entri log saat peristiwa run-time terjadi. Entri log ini berlaku untuk executable, paket, dan tugas dan kontainer yang disertakan paket. Nama entri log sama dengan nama peristiwa run-time yang dinaikkan dan menyebabkan entri log ditulis.

Acara Deskripsi
OnError Menulis entri log ketika terjadi kesalahan.
OnExecStatusChanged Menulis entri log ketika tugas (bukan kontainer) ditangguhkan atau dilanjutkan selama penelusuran kesalahan.
OnInformation Menulis entri log selama validasi dan eksekusi executable untuk melaporkan informasi.
OnPostExecute Menulis entri log segera setelah executable selesai berjalan.
OnPostValidate Menulis entri log ketika validasi executable selesai.
OnPreExecute Menulis entri log segera sebelum eksekusi berjalan.
OnPreValidate Menulis entri log ketika validasi executable dimulai.
OnProgress Menulis entri log ketika kemajuan terukur dibuat oleh executable.
OnQueryCancel Menulis entri log pada titik mana pun dalam pemrosesan tugas di mana ia layak untuk membatalkan eksekusi.
OnTaskFailed Menulis entri log ketika tugas gagal.
OnVariableValueChanged Menulis entri log saat nilai variabel berubah.
OnWarning Menulis entri log ketika peringatan terjadi.
PipelineComponentTime Untuk setiap komponen aliran data, menulis entri log untuk setiap fase validasi dan eksekusi. Entri log menentukan waktu pemrosesan untuk setiap fase.
Diagnostik Menulis entri log yang menyediakan informasi diagnostik.

Misalnya, Anda dapat mencatat pesan sebelum dan sesudah setiap panggilan ke penyedia data eksternal. Untuk informasi selengkapnya, lihat Alat Pemecahan Masalah untuk Eksekusi Paket.

Paket dan banyak tugas memiliki entri log kustom yang dapat diaktifkan untuk pengelogan. Misalnya, tugas Kirim Email menyediakan entri log kustom SendMailTaskBegin , yang mencatat informasi saat tugas Kirim Email mulai dijalankan, tetapi sebelum tugas mengirim pesan email. Untuk informasi selengkapnya, lihat Pesan Kustom untuk Pengelogan.

Membedakan Salinan Paket

Data log mencakup nama dan GUID paket tempat entri log berada. Jika Anda membuat paket baru dengan menyalin paket yang ada, nama dan GUID paket yang ada juga disalin. Akibatnya, Anda mungkin memiliki dua paket yang memiliki GUID dan nama yang sama, sehingga sulit untuk membedakan antara paket dalam data log.

Untuk menghilangkan ambiguitas ini, Anda harus memperbarui nama dan GUID paket baru. Di SQL Server Data Tools (SSDT), Anda dapat meregenerasi GUID di ID properti dan memperbarui nilai Name properti di jendela Properti. Anda juga dapat mengubah GUID dan nama secara terprogram, atau dengan menggunakan prompt perintah dtutil . Untuk informasi selengkapnya, lihat Mengatur Properti Paket dan Utilitas dtutil.

Opsi Pengelogan Induk

Sering kali, opsi pengelogan tugas dan kontainer For Loop, Foreach Loop, dan Sequence cocok dengan paket atau kontainer induk. Dalam hal ini, Anda dapat mengonfigurasinya untuk mewarisi opsi pengelogan dari kontainer induknya. Misalnya, dalam kontainer For Loop yang menyertakan tugas Execute SQL, tugas Execute SQL dapat menggunakan opsi pengelogan yang diatur pada kontainer For Loop. Untuk menggunakan opsi pengelogan induk, Anda mengatur properti LoggingMode dari kontainer ke UseParentSetting. Anda dapat mengatur properti ini di jendela Properti SQL Server Data Tools (SSDT) atau melalui kotak dialog Konfigurasi Log SSIS di SSIS Designer.

Templat Pengelogan

Dalam kotak dialog Konfigurasi Log SSIS , Anda juga dapat membuat dan menyimpan konfigurasi pengelogan yang sering digunakan sebagai templat, lalu menggunakan templat dalam beberapa paket. Ini memudahkan untuk menerapkan strategi pengelogan yang konsisten di beberapa paket dan untuk memodifikasi pengaturan log pada paket dengan memperbarui dan kemudian menerapkan templat. Templat disimpan dalam file XML.

Untuk mengonfigurasi pengelogan menggunakan kotak dialog Konfigurasi log SSIS

  1. Aktifkan paket dan tugasnya untuk pengelogan. Pengelogan dapat terjadi pada paket, kontainer, dan tingkat tugas. Anda dapat menentukan log yang berbeda untuk paket, kontainer, dan tugas.

  2. Pilih penyedia log dan tambahkan log untuk paket. Log hanya dapat dibuat pada tingkat paket, dan tugas atau kontainer harus menggunakan salah satu log yang dibuat untuk paket. Setiap log dikaitkan dengan salah satu penyedia log berikut: File teks, SQL Server Profiler, SQL Server, Log Peristiwa Windows, atau file XML. Untuk informasi selengkapnya, lihat Mengaktifkan Pengelogan Paket di SQL Server Data Tools.

  3. Pilih peristiwa dan informasi skema log tentang setiap peristiwa yang ingin Anda ambil di log. Untuk informasi selengkapnya, lihat Mengonfigurasi Pengelogan dengan Menggunakan File Konfigurasi Tersimpan.

Konfigurasi Penyedia Log

Anda dapat mengatur properti melalui SSIS Designer atau secara terprogram.

Penyedia log dibuat dan dikonfigurasi sebagai langkah dalam menerapkan pengelogan dalam paket. Untuk informasi selengkapnya, lihat Pengelogan Layanan Integrasi.

Setelah membuat penyedia log, Anda dapat melihat dan memodifikasi propertinya di jendela Properti SQL Server Data Tools (SSDT).

Untuk informasi tentang mengatur properti ini secara terprogram, lihat dokumentasi untuk LogProvider kelas .

Pengelogan untuk Tugas Aliran Data

Tugas Aliran Data menyediakan banyak entri log kustom yang dapat digunakan untuk memantau dan menyesuaikan performa. Misalnya, Anda dapat memantau komponen yang dapat menyebabkan kebocoran memori, atau melacak berapa lama waktu yang diperlukan untuk menjalankan komponen tertentu. Untuk daftar entri log kustom ini dan output pengelogan sampel, lihat Tugas Aliran Data.

Menggunakan Kejadian PipelineComponentTime

Mungkin entri log kustom yang paling berguna adalah peristiwa PipelineComponentTime. Entri log ini melaporkan jumlah milidetik yang dihabiskan setiap komponen dalam aliran data pada masing-masing dari lima langkah pemrosesan utama. Tabel berikut ini menjelaskan langkah-langkah pemrosesan ini. Pengembang Integration Services akan mengenali langkah-langkah ini sebagai metode utama dari PipelineComponent.

Langkah Deskripsi
Memvalidasi Komponen memeriksa nilai properti dan pengaturan konfigurasi yang valid.
PreExecute Komponen melakukan pemrosesan satu kali sebelum mulai memproses baris data.
PostExecute Komponen melakukan pemrosesan satu kali setelah memproses semua baris data.
ProcessInput Komponen transformasi atau tujuan memproses baris data masuk yang telah diteruskan oleh sumber atau transformasi hulu ke sana.
PrimeOutput Komponen sumber atau transformasi mengisi buffer data yang akan diteruskan ke transformasi hilir atau komponen tujuan.

Saat Anda mengaktifkan peristiwa PipelineComponentTime, Integration Services mencatat satu pesan untuk setiap langkah pemrosesan yang dilakukan oleh setiap komponen. Entri log berikut menunjukkan subset pesan yang dicatat oleh log sampel paket Integration Services CalculatedColumns:

The component "Calculate LineItemTotalCost" (3522) spent 356 milliseconds in ProcessInput.

The component "Sum Quantity and LineItemTotalCost" (3619) spent 79 milliseconds in ProcessInput.

The component "Calculate Average Cost" (3662) spent 16 milliseconds in ProcessInput.

The component "Sort by ProductID" (3717) spent 125 milliseconds in ProcessInput.

The component "Load Data" (3773) spent 0 milliseconds in ProcessInput.

The component "Extract Data" (3869) spent 688 milliseconds in PrimeOutput filling buffers on output "OLE DB Source Output" (3879).

The component "Sum Quantity and LineItemTotalCost" (3619) spent 141 milliseconds in PrimeOutput filling buffers on output "Aggregate Output 1" (3621).

The component "Sort by ProductID" (3717) spent 16 milliseconds in PrimeOutput filling buffers on output "Sort Output" (3719).

Entri log ini menunjukkan bahwa tugas aliran data menghabiskan waktu paling lama pada langkah-langkah berikut, yang diperlihatkan di sini dalam urutan menuram:

  • Sumber OLE DB yang diberi nama "Ekstrak Data" menghabiskan 688 mdtk. memuat data.

  • Transformasi Kolom Turunan yang diberi nama "Calculate LineItemTotalCost" menghabiskan 356 ms. melakukan perhitungan pada baris masuk.

  • Transformasi Agregat yang diberi nama "Jumlah Jumlah dan LineItemTotalCost" menghabiskan gabungan 220 ms-141 di PrimeOutput dan 79 dalam penghitungan berkinerja ProcessInput dan meneruskan data ke transformasi berikutnya.

Daftar berikut berisi tautan ke topik yang memperlihatkan cara melakukan tugas yang terkait dengan fitur pengelogan.

Alat DTLoggedExec untuk Pengelogan Lengkap dan Detail (Proyek CodePlex)

Lihat juga

Lihat Entri Log di Jendela Peristiwa Log