Performance Tuning di Informatica: Tutorial Lengkap

โšก Ringkasan Cerdas

Penyetelan performa di Informatica menghilangkan tautan paling lambat dalam sebuah sesi, satu lapisan demi satu, bekerja dari target kembali melalui sumber, yaitu peta.ping, sesi tersebut, dan terakhir sistem operasinya.

  • ๐ŸŽฏ Pesanan tetap: Informatica merekomendasikan untuk mencari hambatan (bottleneck) dengan urutan target, kemudian sumber, lalu pemetaan.ping, lalu sesi, lalu sistem.
  • ๐Ÿงต Statistik thread menceritakan kisahnya: Alur yang paling sibuk di antara pembaca, transformasi, dan penulis menyebutkan lapisan yang perlu diperbaiki.
  • ๐Ÿšฟ Saring sejak dini: Baris yang dibuang di Source Qualifier tidak pernah masuk ke dalam pipeline, sehingga tidak menimbulkan biaya apa pun di tahap selanjutnya.
  • ๏ธ Kirim pekerjaan ke basis data: Operasi join, sort, dan filter biasanya berjalan lebih cepat di SQL daripada di dalam transformasi.
  • ๐ŸงŠ Disiplin cache: Jumlah port dan kolom pencarian yang lebih sedikit berarti cache yang lebih kecil dan paging disk yang lebih sedikit.
  • โš™๏ธ Pengaturan sesi penting: Ukuran buffer DTM, ukuran blok buffer, interval commit, dan optimasi pushdown disetel setelah pemetaan.ping bersih.

Penyetelan Kinerja di Informatica

Apa itu Performance Tuning di Informatica?

Penyetelan kinerja di Informatica adalah praktik menemukan satu komponen yang membatasi kecepatan berjalan suatu sesi, menghilangkan batasan tersebut, dan kemudian mengulangi proses tersebut pada komponen mana pun yang menjadi paling lambat berikutnya. Kecepatan suatu sesi hanya akan secepat lapisan paling lambatnya, jadi menyetel transformasi yang sebelumnya bukan masalah tidak akan menghasilkan peningkatan yang terukur.

Informatica mengidentifikasi lima tempat di mana hambatan dapat terjadi dan merekomendasikan untuk memeriksanya dalam urutan tetap.

Memesan Lapisan Penyebab umum
1 Target Penulisan data yang lambat, interval checkpoint yang kecil, ukuran paket jaringan basis data yang kecil.
2 sumber Kueri lambat, indeks hilang, kolom yang tidak perlu dibaca.
3 Lokasiping Transformasi yang mahal atau ditempatkan dengan buruk, cache yang terlalu besar.
4 sesi Buffer memori, interval komit, partisi, tipe pemuatan
5 System Kejenuhan CPU, penundaan I/O, paging pada mesin Layanan Integrasi

Urutan ini disengaja. Target yang tidak dapat menyerap baris dengan cukup cepat akan membuat setiap lapisan hulu terlihat lambat, jadi target tersebut diperiksa terlebih dahulu. Metode lengkapnya didokumentasikan di Panduan Penyetelan Performa PowerCenter.

Cara Mengidentifikasi Hambatan Kinerja

Menebak lapisan mana yang lambat akan membuang lebih banyak waktu daripada mengukurnya. Empat teknik mencakup lima lapisan yang disebutkan di atas.

  • Jalankan sesi pengujian. Konfigurasi salinan dari Sidang untuk menulis ke target file datar. Jika sesi meningkat secara signifikan, target tersebut adalah hambatan utamanya. Kebalikannya, membaca dari sumber file datar, mengisolasi hambatan utama pada sumber.
  • Analisis statistik thread. Manajer Transformasi Data menjalankan thread pembaca, satu atau lebih thread transformasi, dan thread penulis. Thread dengan waktu sibuk tertinggi dalam log sesi akan langsung menunjuk ke layer yang akan dikerjakan: pembaca untuk sumber, transformasi untuk peta.ping, penulis untuk target tersebut.
  • Analisis detail kinerja. Aktifkan pengumpulan data performa pada sesi dan baca penghitungnya. Baris kesalahan yang tinggi atau sejumlah besar baris dalam cache pencarian menunjukkan adanya masalah pada pemetaan.ping masalah ini lebih berkaitan dengan basis data daripada masalah teknis.
  • Pantau sistem tersebut. Operaalat sistem yang menampilkan penggunaan CPU, penundaan I/O, dan paging, bersama dengan Pemantau Alur Kerja Tampilan sumber daya menunjukkan bahwa mesin tersebut sudah kehabisan kapasitas.

Setelah lapisan yang bertanggung jawab diketahui, saran tingkat transformasi di bagian selanjutnya menjadi layak untuk diterapkan. Bagian-bagian tersebut disusun sesuai urutan alur kerja, mulai dari titik masuk data. petaping sampai pada titik di mana data tersebut diagregasi.

Transformasi Kualifikasi Sumber

Setiap baris yang tidak dibaca oleh Source Qualifier adalah baris yang tidak perlu diproses oleh transformasi lain, sehingga menjadikannya tempat termurah di seluruh peta.ping untuk menghemat waktu.

  • Bawa hanya kolom yang diperlukan dari sumbernya. Seringkali tidak semua kolom tabel sumber wajib diisi, jadi bawa hanya kolom yang wajib diisi dengan menghapus kolom yang tidak diperlukan.
  • Hindari menggunakan klausa order by di dalam Kualifikasi Sumber Penggantian SQL. Klausa ORDER BY memerlukan pemrosesan tambahan dan kinerja dapat ditingkatkan dengan menghindarinya.

Transformasi Filter

Penyaringan mengikuti prinsip yang sama satu langkah kemudian dalam alur kerja: buang baris yang tidak diinginkan pada titik paling awal di mana peta tersebutping memiliki informasi yang cukup untuk mengidentifikasi mereka.

  • penggunaan transformasi filter sedini mungkin di dalam petapingJika data yang tidak diinginkan dapat dibuang lebih awal dalam pemetaan.pingHal itu akan meningkatkan kapasitas pemrosesan.
  • Gunakan source qualifier untuk memfilter data. Anda juga dapat menggunakan source qualifier SQL override untuk memfilter record, sebagai pengganti transformasi filter.

Transformasi Penggabung

Bergabung adalah operasi pertama yang benar-benar mahal dalam peta pada umumnya.ping, karena sumber utama harus di-cache terlebih dahulu sebelum baris detail dapat dicocokkan dengannya.

  • Sebaiknya selalu lakukan join langsung di database jika memungkinkan, karena join di database lebih cepat daripada join yang dibuat di Informatica. transformasi penyambung.
  • Urutkan data sebelum bergabung jika memungkinkan, karena akan mengurangi I/O disk yang dilakukan selama bergabung.
  • Jadikan tabel dengan jumlah baris lebih sedikit sebagai tabel utama.

Poin ketiga adalah yang paling sering terlewatkan. Integration Service menyimpan sumber utama dalam cache, jadi menunjuk tabel yang lebih kecil sebagai master akan menjaga ukuran cache tetap kecil.

Transformasi Pencarian

Pencarian dapat dilakukan dengan cara meminta data dari setiap baris sekali atau membangun cache di memori, dan kedua cara tersebut menghasilkan sumber pencarian yang lebih kecil dan terindeks dengan lebih baik.

  • Buat indeks untuk kolom di tabel pencarian yang digunakan dalam kondisi pencarian. Karena tabel pencarian akan diakses untuk mencari data yang cocok, menambahkan indeks akan meningkatkan kinerja.
  • Jika memungkinkan, alih-alih menggunakan transformasi pencarian, gunakan gabungan dalam database. Saat penggabungan database menjadi lebih cepat, performa akan meningkat.
  • Hapus kolom yang tidak diperlukan dari tabel pencarian dan pertahankan hanya kolom yang diperlukan. Ini akan menurunkan biaya pengambilan kolom tambahan dari database.

Transformasi Agregator

An Agregator Data disimpan dalam cache saat mengelompokkan baris, jadi apa pun yang mengurangi volume data yang mencapainya akan mengurangi cache yang dibutuhkan.

  • Saring data sebelum menggabungkannya. Jika Anda menggunakan transformasi filter dalam mappingKemudian, saring data terlebih dahulu sebelum menggunakan agregator karena hal ini akan mengurangi operasi agregasi yang tidak perlu.
  • Batasi jumlah port yang digunakan dalam transformasi agregator. Ini akan mengurangi volume data yang disimpan transformasi agregator di dalam cache.

Penyetelan Tingkat Sesi di Informatica

Saat petaping Jika program itu sendiri bersih, peningkatan kinerja yang tersisa berasal dari properti sesi. Pengaturan ini sebaiknya diubah satu per satu, dengan menjalankan program dalam waktu tertentu setelah setiap perubahan, karena beberapa di antaranya mengorbankan memori demi kecepatan.

Pengaturan Apa yang dikendalikannya Kapan harus mengubahnya?
Ukuran buffer DTM Total memori yang dialokasikan oleh Layanan Integrasi untuk blok data sumber dan target. Tingkatkan saat sesi menangani banyak partisi, sumber, atau target.
Buffer Ukuran blok Ukuran blok memori individual Tingkatkan untuk baris yang luar biasa besar; kurangi ketika memori fisik terbatas.
Interval komitmen Berapa banyak baris yang ditulis sebelum perintah commit dikeluarkan? Angkatlah ketika thread penulis menghabiskan waktunya menunggu checkpoint basis data.
Optimasi penekanan ke bawah Seberapa banyak dari peta tersebutping Logika tersebut diubah menjadi SQL dan dieksekusi oleh basis data. Gunakan saat sumber dan target berada di basis data yang sama dan andal.

Buffer Penggunaan memori mengikuti perhitungan yang terdokumentasi, bukan tebakan. Layanan Integrasi mengalokasikan setidaknya dua blok untuk setiap partisi sumber dan target, sehingga jumlah blok buffer sesi adalah (total sumber + total target) dikalikan dua, dan ukuran buffer DTM adalah jumlah blok tersebut dikalikan dengan ukuran blok buffer dan dibagi 0.9.

Optimasi pushdown memerlukan kehati-hatian. Ini hanya membantu jika basis data benar-benar lebih cepat daripada mesin Integration Service dan logika transformasi dapat diekspresikan dalam SQLLogika yang tidak dapat diterjemahkan akan tetap berada dalam sesi, sehingga keuntungannya seringkali lebih kecil dari yang diharapkan. Ukur sebelum dan sesudah, daripada mengaktifkannya sebagai pengaturan default.

Pertanyaan Umum Demo Slot

Pemartisian membantu ketika mesin Layanan Integrasi memiliki CPU yang cukup dan sumber serta target dapat melayani koneksi paralel. Pada mesin yang jenuh, atau terhadap target single-threaded, partisi tambahan akan menambah beban tanpa mempersingkat waktu eksekusi.

Atur indeks dan cache data agar cukup besar untuk menampung seluruh sumber pencarian, jika tidak, Integration Service akan melakukan paging ke disk. Log sesi melaporkan ukuran cache yang sebenarnya dibutuhkan, jadi jalankan sekali dengan ukuran otomatis dan baca kembali nilainya.

Setiap penyisipan juga mempertahankan setiap indeks dan batasan pada target, dan biaya tersebut meningkat seiring dengan ukuran tabel. Statistik basis data yang usang memperburuk keadaan. Thread penulis kemudian menjadi thread yang paling sibuk, yang merupakan ciri khas kemacetan target klasik.

Ya, karena transformasi dapat melepaskan setiap grup segera setelah selesai, alih-alih menyimpan semuanya dalam cache. Baris yang masuk harus sudah diurutkan berdasarkan port pengelompokan, dan sesi akan gagal jika belum.

Untuk muatan insert-only yang besar, turunkanping Membuat indeks dan batasan terlebih dahulu, lalu membangunnya kembali setelahnya biasanya lebih cepat. Perintah SQL pra-sesi dan pasca-sesi pada properti sesi adalah tempat yang tepat untuk membuat skrip kedua langkah tersebut.

Mode bulk melewati sebagian besar pencatatan basis data dan memuat lebih cepat, tetapi mencegah pemulihan dan tidak berfungsi dengan semua target atau strategi pembaruan. Mode normal menulis melalui jalur pencatatan biasa dan tetap dapat dipulihkan.

Model yang dilatih berdasarkan riwayat waktu eksekusi akan menandai sesi yang telah menyimpang dari durasi normalnya jauh sebelum ada yang menyadarinya, dan juga kegagalan terkait klaster. Model tersebut menunjuk pada eksekusi yang berubah โ€” lapisan yang bertanggung jawab masih harus dikonfirmasi dari statistik thread.

Fitur ini dapat menulis ulang kueri, menyarankan kandidat indeks, dan menjelaskan rencana eksekusi yang disalin ke editor. Namun, fitur ini tidak dapat melihat repositori atau log sesi, sehingga setiap penulisan ulang harus divalidasi terhadap rencana sebenarnya dan jumlah baris.

Ringkaslah postingan ini dengan: