Monitorowanie liczników wydajności z zadaniem skryptów
Administratorzy może być konieczne do monitorowania wydajności Integration Services pakiety, które wykonują złożone transformacje na dużych 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 są przechowywane informacje o wydajności aplikacji, służące do analizowania wydajności oprogramowania w czasie.Liczniki wydajności można monitorować lokalnie lub zdalnie przy użyciu Monitor wydajności narzędzie.Wartości liczników wydajności można przechowywać zmienne dla nowszych przepływ sterowania branching w pakiecie.
Jako alternatywę na korzystanie z liczników wydajności można podnieść FireProgress(String, Int32, Int32, Int32, String, Boolean%) Zdarzenie przy użyciu Events() Właściwość Dts obiekt. The FireProgress(String, Int32, Int32, Int32, String, Boolean%) zdarzenie returns both incremental progress and percentage complete information to the Integration Services runtime.
Uwaga
Jeśli chcesz utworzyć zadanie, które łatwo można używać w wielu pakietów, należy rozważyć przy użyciu kodu w tym przykładzie skrypt zadanie jako punkt początkowy dla niestandardowego zadania.Aby uzyskać więcej informacji zobaczOpracowywania niestandardowego zadania.
Description
Poniższy przykład tworzy niestandardowego licznika i zwiększa licznika.Po pierwsze w przykładzie 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.Na koniec, w przykładzie poniżej dobrze telefonicznej Close Metoda na licznika wydajności jest już potrzebne.
Uwaga
Tworzenie nowej kategorii licznika wydajności i licznika wydajności wymaga praw administracyjnych.Ponadto nowa kategoria i licznik zachowywane na komputerze po utworzeniu.
Aby skonfigurować ten przykład zadania skryptu
- Użycie Imports instrukcja SQL w kodzie do zaimportowania System.Diagnostics obszar nazw.
Przykład kodu
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;
}
|