Udostępnij przez


Monitorowanie liczników wydajności z zadań skryptu

Administratorzy trzeba monitorować wydajność Integration Services pakietów, które wykonują złożone transformacje na duże ilości danych.The System.Diagnostics namespace of the Microsoft .NET Framework provides classes for using existing performance counters and for creating your own performance counters.

Liczniki wydajności przechowują informacje wydajności aplikacji, które można używać do analizowania wydajności oprogramowania przez czas.Liczniki wydajności można monitorować lokalnie lub zdalnie przy użyciu Monitora wydajności narzędzie.Wartości liczników wydajności można przechowywać zmienne dla nowszych sterowania przepływem rozgałęzianie w pakiet.

Jako alternatywę liczników wydajności można podnieść FireProgress zdarzenie przez Events Właściwość Dts obiektu.FireProgresszdarzenie Zwraca przyrostowego postępu i procent kompletnych informacji do Integration Services runtime.

Ostrzeżenie

Aby utworzyć zadanie łatwiej można użyć ponownie w wielu pakietach, należy rozważyć przy użyciu kodu w tym przykładzie zadanie skryptu jako punktu wyjścia dla niestandardowego zadania.Aby uzyskać więcej informacji, zobacz Opracowywania niestandardowego zadania.

Opis

Poniższy przykład tworzy niestandardowego licznika i zwiększa licznika.Po pierwsze przykład określa, czy licznik wydajności już istnieje.Jeśli licznik wydajności nie został utworzony, wywołania skryptów Create metoda PerformanceCounterCategory obiekt, aby go utworzyć.Po utworzeniu licznika wydajności skrypt zwiększa licznika.Wreszcie, przykładzie następuje najlepiej telefonicznej Close Metoda licznika wydajności, gdy jest już potrzebne.

Ostrzeżenie

Tworzenie nowej kategorii licznika wydajności i licznika wydajności wymaga uprawnień administracyjnych.Ponadto nową kategorię i licznik pozostają na komputerze po utworzeniu.

Aby skonfigurować ten przykład zadania skryptu

  • Użyj Imports instrukcja w kodzie do importowania System.Diagnostics obszaru nazw.

Przykładowy kod

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;
        }
Ikona usług Integration Services (mała)Bieżąco z usług integracji

Najnowsze pliki do pobrania, artykuły, próbki i wideo firmy Microsoft, jak również wybranych rozwiązań ze Wspólnoty, odwiedź witrynę Integration Services strona na MSDN i TechNet:

Aby otrzymywać automatyczne powiadomienia dotyczące tych aktualizacji, zasubskrybuj źródła danych RSS dostępne na tej stronie.