Compartir a través de


Supervisar los contadores de rendimiento con la tarea Script

Los administradores quizá tengan que supervisar el rendimiento de los paquetes Integration Services que realizan transformaciones complejas en grandes volúmenes de datos. El espacio de nombres System.Diagnostics de Microsoft .NET Framework proporciona las clases para utilizar los contadores de rendimiento existentes y para crear sus propios contadores de rendimiento.

Los contadores de rendimiento almacenan información sobre el rendimiento de la aplicación que puede utilizar para analizar el rendimiento del software a lo largo del tiempo. Los contadores de rendimiento se pueden supervisar de forma local o remota mediante la herramienta Monitor de rendimiento. Puede almacenar los valores de los contadores de rendimiento en variables para la bifurcación del flujo de control posterior en el paquete.

Como una alternativa a utilizar los contadores de rendimiento, puede provocar el evento FireProgress a través de la propiedad Events del objeto Dts. El evento FireProgress devuelve el progreso incremental e información del porcentaje completado al módulo ejecutable de Integration Services.

Nota

Si desea crear una tarea que pueda reutilizar más fácilmente en varios paquetes, considere la posibilidad de utilizar el código de este ejemplo de tarea Script como punto inicial de una tarea personalizada. Para obtener más información, vea Desarrollar una tarea personalizada.

Descripción

En el ejemplo siguiente se crea un contador de rendimiento personalizado y se incrementa el contador. Primero, el ejemplo determina si el contador de rendimiento ya existe. Si no se ha creado el contador de rendimiento, el script llama al método Create del objeto PerformanceCounterCategory para crearlo. Una vez creado el contador de rendimiento, el script incrementa el contador. Finalmente, el ejemplo sigue la práctica recomendada de llamar al método Close en el contador de rendimiento cuando ya no se necesita.

Nota

Crear una nueva categoría de contador de rendimiento y el contador de rendimiento requiere derechos administrativos. Además, la nueva categoría y el contador se conservan en el equipo después de la creación.

Para configurar este ejemplo de tarea Script

  • Utilice una instrucción Imports en el código para importar el espacio de nombres System.Diagnostics.

Código de ejemplo

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;
        }
Icono de Integration Services (pequeño) Manténgase al día con Integration Services

Para obtener las más recientes descargas, artículos, ejemplos y vídeos de Microsoft, así como soluciones seleccionadas de la comunidad, visite la página de Integration Services en MSDN o TechNet:

Para recibir notificaciones automáticas de estas actualizaciones, suscríbase a las fuentes RSS disponibles en la página.