Usar informes para analizar el rendimiento
Actualizado: 17 de julio de 2006
Al analizar el rendimiento de Microsoft SQL Server Notification Services, empiece por determinar el rendimiento de una instancia y sus aplicaciones. Para obtener esta información, utilice los informes administrativos y de instantáneas de la aplicación:
- El informe de instantáneas de la aplicación es generado por el procedimiento almacenado NSSnapshotApplications (Transact-SQL). Por ejemplo, puede utilizar este informe para ver si el generador se está ejecutando conforme a la programación o si Vacuumer está quitando los datos.
- El informe administrativo es generado por el procedimiento almacenado NSAdministrationHistory (Transact-SQL). Por ejemplo, puede utilizar este informe para buscar lotes de notificaciones con errores.
Estos informes ayudan a determinar si el rendimiento de las aplicaciones es el esperado. Si no lo es, utilice la siguiente metodología para analizar el bajo rendimiento.
Analizar el bajo rendimiento
El análisis de las aplicaciones de Notification Services empieza por el cuanto del generador. El generador es el elemento principal de Notification Services y, cuando se está ejecutando la instancia, debería activarse en un intervalo de tiempo regular que se denomina cuanto. La duración de un cuanto se especifica en el archivo de definición de aplicación (ADF). El generador utiliza la duración del cuanto para determinar la frecuencia con la que se activan las reglas definidas en el ADF.
Cuando se analizan los problemas de rendimiento, normalmente se buscan los períodos de cuanto que no se completaron como estaba previsto y, después, se determina qué ocurrió durante esos cuantos. Utilice la metodología siguiente para buscar los cuantos que se van a analizar, obtener detalles sobre ellos y, después, analizar los detalles de la instancia y de la aplicación.
Para obtener más información acerca de los intervalos de cuantos, vea Arquitectura de procesamiento de suscripciones y Especificar la duración de cuantos del generador.
Paso 1: determinar un cuanto de interés
El primer paso para analizar una aplicación de Notification Services es identificar un conjunto de períodos de cuanto relevantes. Un período de cuanto relevante para el bajo rendimiento suele tener una de las características siguientes:
- La duración del cuanto es mayor de la esperada. Puede deberse a varios factores y, para determinar la causa, es necesario analizar más profundamente la aplicación.
- El cuanto está marcado como incorrecto. Un período de cuanto puede tener errores por varios motivos, como que una regla no se haya ejecutado según lo previsto.
- Se omitió el cuanto. Si desea que, por todos los medios, el generador siga procesando los datos actuales, se puede configurar para que omita los períodos de cuanto cuando sea necesario. Los cuantos omitidos suelen ser un efecto secundario de períodos de cuanto demasiado prolongados.
Para ayudar a identificar los períodos de cuanto demasiado prolongados, con errores u omitidos, Notification Services proporciona los informes de rendimiento, tiempo de ejecución, errores y omisiones de cuantos.
- El informe de rendimiento de cuantos clasifica los cuantos en función de sus tiempos de ejecución. Esto puede ayudarle a determinar la duración de los cuantos en general. El procedimiento almacenado NSQuantumPerformance (Transact-SQL) genera este informe.
- El informe de tiempo de ejecución de cuantos contiene los cuantos cuya duración es mayor que la especificada. Los cuantos se pueden analizar con mayor detalle mediante sus Id. El procedimiento almacenado NSQuantumExecutionTime (Transact-SQL) genera este informe.
- El informe de errores de cuantos proporciona información sobre cuantos del generador con errores. Un cuanto es incorrecto si no pudo completar el procesamiento requerido, como las activaciones de reglas. El procedimiento almacenado NSQuantumFailures (Transact-SQL) genera este informe.
- El informe de omisiones de cuantos proporciona información sobre los cuantos del generador omitidos. Los cuantos se pueden omitir si el generador se queda atrás y si se establecen límites de cuantos en el ADF. El procedimiento almacenado NSQuantumsSkipped (Transact-SQL) genera este informe.
Escenario: mediante el procedimiento almacenado NSQuantumPerformance, se puede determinar que la duración del cuanto 188 fue dos veces superior a la de los demás cuantos. El siguiente paso es descubrir qué sucedió durante ese cuanto.
Paso 2: analizar información detallada sobre el cuanto
Después de haber identificado un cuanto de interés, determine qué ocurrió durante dicho cuanto. Para obtener detalles sobre el cuanto, utilice los informes detallado y de lista.
- El informe detallado del cuanto proporciona información detallada sobre un cuanto especificado. Utilice este informe para solucionar problemas de cuantos de larga duración o analizar el procesamiento de los cuantos. El procedimiento almacenado NSQuantumDetails (Transact-SQL) genera este informe.
- El informe de lista de cuantos proporciona información sobre los cuantos procesados durante un período de tiempo concreto y muestra los cuantos en el orden en que se ejecutaron. El procedimiento almacenado NSQuantumList (Transact-SQL) genera este informe.
Escenario: retomando el escenario presentado en el paso 1, se ejecuta el procedimiento almacenado NSQuantumDetails para el cuanto 188. De acuerdo con el informe, se averigua que una de las activaciones de reglas consumió el 90 por ciento del tiempo del cuanto. El siguiente paso es consultar los lotes de eventos y notificaciones de éste y de otros cuantos. Mediante este informe, se observa que, durante este cuanto, se procesaron el lote de eventos 60 y el lote de notificaciones 40.
Paso 3: analizar datos de aplicación detallados
Después de analizar un período de cuanto, puede centrarse en los eventos, las suscripciones o las notificaciones específicos del cuanto. El informe detallado del lote de eventos, el informe detallado de suscripciones programadas y el informe detallado del lote de notificaciones proporcionan información detallada sobre los datos de la aplicación.
- El informe detallado del lote de eventos proporciona información sobre un lote de eventos específico para una clase de evento. El informe presenta un resumen sobre el lote de eventos y, después, información sobre cada evento del lote. El procedimiento almacenado NSEventBatchDetails (Transact-SQL) genera este informe. Utilice el procedimiento almacenado NSEventBatchList (Transact-SQL) para obtener los Id. del lote de eventos.
- El informe detallado de suscripciones programadas proporciona información sobre todas las suscripciones de una clase de suscripción. El procedimiento almacenado NSScheduledSubscriptionDetails (Transact-SQL) genera este informe.
- Si utiliza acciones de condición, el informe sobre condiciones de las suscripciones devuelve la consulta utilizada para evaluar una suscripción basada en condiciones. El procedimiento almacenado NSSubscriptionConditionInformation (Transact-SQL) genera este informe.
- El informe detallado del lote de notificaciones proporciona información sobre un lote de notificaciones específico para una clase de notificación. El informe presenta un resumen sobre el lote de notificaciones y, después, información detallada sobre cada notificación del lote. El procedimiento almacenado NSNotificationBatchDetails (Transact-SQL) genera este informe. Utilice el procedimiento almacenado NSEventBatchList (Transact-SQL) para obtener los Id. del lote de notificaciones.
- También puede utilizar cualquiera de los informesde diagnóstico o de instantáneas para estudiar las aplicaciones en varios niveles de detalle.
Escenario: para finalizar el análisis del cuanto 188, primero se ejecuta el procedimiento almacenado NSEventBatchDetails para el lote de eventos 60 y se observa que durante este cuanto se recopiló un número importante de eventos. Mediante NSDiagnosticEventClass, se determina que este lote de eventos tenía bastantes más eventos que la mayoría de las clases de eventos, lo que demuestra que un tiempo de ejecución del cuanto más prolongado de lo habitual no indica un problema de la aplicación, sino que, para mejorar el rendimiento, quizás sea necesario optimizarla, es decir, optimizar las consultas y agregar índices.
Vea también
Conceptos
Informes de rendimiento de Notification Services
Supervisar el rendimiento y la actividad de Notification Services