Bagikan melalui


Memantau Penghitung Kinerja dengan Tugas Skrip

Berlaku untuk: SQL Server SSIS Integration Runtime di Azure Data Factory

Administrator mungkin perlu memantau performa paket Layanan Integrasi yang melakukan transformasi kompleks pada data dalam jumlah besar. Namespace System.Diagnostics microsoft .NET Framework menyediakan kelas untuk menggunakan penghitung kinerja yang ada dan untuk membuat penghitung kinerja Anda sendiri.

Penghitung kinerja menyimpan informasi performa aplikasi yang dapat Anda gunakan untuk menganalisis performa perangkat lunak dari waktu ke waktu. Penghitung kinerja dapat dipantau secara lokal atau jarak jauh dengan menggunakan alat Monitor Performa. Anda dapat menyimpan nilai penghitung kinerja dalam variabel untuk percabangan alur kontrol nanti dalam paket.

Sebagai alternatif untuk menggunakan penghitung kinerja, Anda dapat menaikkan FireProgress acara melalui Events properti objek Dts . Peristiwa mengembalikan FireProgress informasi lengkap kemajuan dan persentase inkremental ke runtime Integration Services.

Catatan

Jika Anda ingin membuat tugas yang dapat digunakan kembali dengan lebih mudah di beberapa paket, pertimbangkan untuk menggunakan kode dalam sampel tugas Skrip ini sebagai titik awal untuk tugas kustom. Untuk informasi selengkapnya, lihat Mengembangkan Tugas Kustom.

Deskripsi

Contoh berikut membuat penghitung kinerja kustom dan menaikkan penghitung. Pertama, contoh menentukan apakah penghitung kinerja sudah ada. Jika penghitung kinerja belum dibuat, skrip memanggil metode Buat objek PerformanceCounterCategory untuk membuatnya. Setelah penghitung kinerja dibuat, skrip akan menaikkan penghitung. Akhirnya, contoh mengikuti praktik terbaik untuk memanggil metode Tutup pada penghitung kinerja ketika tidak lagi diperlukan.

Catatan

Membuat kategori penghitung kinerja dan penghitung kinerja baru memerlukan hak administratif. Selain itu, kategori dan penghitung baru bertahan di komputer setelah pembuatan.

Untuk mengonfigurasi contoh Tugas Skrip ini

  • Gunakan pernyataan Impor dalam kode Anda untuk mengimpor namespace System.Diagnostics.

Contoh Kode

Public Sub Main()  
  
    Dim myCounter As PerformanceCounter  
  
    Try  
        'Create the performance counter if it does not already exist.  
        If Not _  
        PerformanceCounterCategory.Exists("TaskExample") Then  
            PerformanceCounterCategory.Create("TaskExample", _  
                "Task Performance Counter Example", "Iterations", _  
                "Number of times this task has been called.")  
        End If  
  
        'Initialize the performance counter.  
        myCounter = New PerformanceCounter("TaskExample", _  
            "Iterations", String.Empty, False)  
  
        'Increment the performance counter.  
        myCounter.Increment()  
  
         myCounter.Close()  
        Dts.TaskResult = ScriptResults.Success  
    Catch ex As Exception  
        Dts.Events.FireError(0, _  
            "Task Performance Counter Example", _  
            ex.Message & ControlChars.CrLf & ex.StackTrace, _  
            String.Empty, 0)  
        Dts.TaskResult = ScriptResults.Failure  
    End Try  
  
End Sub  
  
public class ScriptMain  
{  
  
public void Main()  
        {  
  
            PerformanceCounter myCounter;  
  
            try  
            {  
                //Create the performance counter if it does not already exist.  
                if (!PerformanceCounterCategory.Exists("TaskExample"))  
                {  
                    PerformanceCounterCategory.Create("TaskExample", "Task Performance Counter Example", "Iterations", "Number of times this task has been called.");  
                }  
  
                //Initialize the performance counter.  
                myCounter = new PerformanceCounter("TaskExample", "Iterations", String.Empty, false);  
  
                //Increment the performance counter.  
                myCounter.Increment();  
  
                myCounter.Close();  
                Dts.TaskResult = (int)ScriptResults.Success;  
            }  
            catch (Exception ex)  
            {  
                Dts.Events.FireError(0, "Task Performance Counter Example", ex.Message + "\r" + ex.StackTrace, String.Empty, 0);  
                Dts.TaskResult = (int)ScriptResults.Failure;  
            }  
  
            Dts.TaskResult = (int)ScriptResults.Success;  
        }