Freigeben über


Überwachen von Leistungsindikatoren mit dem Skripttask

Administratoren müssen möglicherweise die Leistung von Integration Services-Paketen überwachen, die komplexe Transformationen mit großen Datenmengen durchführen. Der System.Diagnostics-Namespace von Microsoft.NET Framework umfasst Klassen zur Verwendung vorhandener sowie zur Erstellung eigener Leistungsindikatoren.

Leistungsindikatoren speichern Leistungsdaten von Anwendungen, anhand derer Sie die Leistung von Software über einen bestimmten Zeitraum analysieren können. Leistungsindikatoren können mit dem Tool Systemmonitor lokal oder remote überwacht werden. Für die spätere Verzweigung der Ablaufsteuerung im Paket können Sie die Werte der Leistungsindikatoren in Variablen speichern.

Als Alternative zu Leistungsindikatoren haben Sie auch die Möglichkeit, das FireProgress-Ereignis über die Events-Eigenschaft des Dts-Objekts auszulösen. Das FireProgress-Ereignis gibt sowohl inkrementelle Status- als auch abgeschlossene Prozentsatzinformationen an die Integration Services-Laufzeit zurück.

HinweisHinweis

Wenn Sie einen Task erstellen möchten, den Sie einfacher in mehreren Paketen wiederverwenden können, empfiehlt es sich, den Code in diesem Skripttaskbeispiel als Ausgangspunkt für einen benutzerdefinierten Task zu verwenden. Weitere Informationen finden Sie unter Entwickeln eines benutzerdefinierten Tasks.

Beschreibung

Im folgenden Beispiel wird ein benutzerdefinierter Leistungsindikator erstellt und anschließend inkrementiert. Zuerst wird ermittelt, ob der Leistungsindikator bereits vorhanden ist. Falls der Leistungsindikator noch nicht erstellt wurde, ruft das Skript die Create-Methode des PerformanceCounterCategory-Objekts auf, um ihn zu generieren. Anschließend inkrementiert das Skript den Leistungsindikator. Zum Abschluss wird die Close-Methode für den Leistungsindikator aufgerufen, sobald dieser nicht mehr benötigt wird (bewährte Methode).

HinweisHinweis

Zum Erstellen einer neuen Leistungsindikatorkategorie und eines Leistungsindikators sind Administratorrechte erforderlich. Außerdem bleiben die neue Kategorie und der Leistungsindikator nach der Erstellung auf dem Computer erhalten.

So konfigurieren Sie dieses Skripttaskbeispiel

  • Verwenden Sie eine Imports-Anweisung im Code, um den System.Diagnostics-Namespace zu importieren.

Beispielcode

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;
        }
Integration Services (kleines Symbol) Bleiben Sie mit Integration Services auf dem neuesten Stand

Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf der Integration Services-Seite von MSDN oder TechNet:

Abonnieren Sie die auf der Seite verfügbaren RSS-Newsfeeds, um automatische Benachrichtigungen zu diesen Aktualisierungen zu erhalten.