SQL Server Job Status
UID:
sql_server_job_statusVersion: 1.3.1 Paneles: ~14
Proposito
Este dashboard proporciona visibilidad completa de las ejecuciones de SQL Server Agent Jobs, incluyendo:
- Jobs fallidos, cancelados y de larga duracion
- Jobs actualmente en ejecucion
- Datos historicos de ejecucion para identificar tendencias
- Desviaciones de rendimiento e issues recurrentes
SQL Server Agent es el componente de programacion de tareas integrado en SQL Server que permite automatizar tareas administrativas, mantenimiento de bases de datos, y procesos de negocio criticos. Para mas informacion, consulte la documentacion oficial de SQL Server Agent.
Variables
| Variable | Descripcion |
|---|---|
$Server_Name | Servidor SQL Server a monitorizar |
$Job | Job especifico o multiples jobs a filtrar |
Codigo de Colores
| Color | Codigo | Significado |
|---|---|---|
| Verde | #00db88 | Success - Ejecucion exitosa |
| Magenta | #ad21d8e8 | To Check - Revisar |
| Rojo | #F2495C | Failed - Ejecucion fallida |
| Amarillo | #FFFF00 | Running - En ejecucion |
| Naranja | #FF780A | Cancelled - Cancelado |
Paneles
Running Jobs
Running Jobs logs
Jobs que se encuentran actualmente en ejecucion.
Importancia: Conocer los jobs en ejecucion es fundamental para evitar conflictos de recursos. Multiples jobs ejecutandose simultaneamente pueden competir por CPU, memoria e I/O, degradando el rendimiento general del servidor. Tambien ayuda a identificar jobs que deberian haber terminado pero siguen activos.
Running Jobs Exceeding Duration
Jobs Exceed Normal Duration logs
Jobs en ejecucion que exceden su duracion habitual.
Importancia: Un job que excede su duracion normal es una senal de alerta temprana de problemas subyacentes. Puede indicar bloqueos, contension de recursos, crecimiento inesperado de datos o degradacion del rendimiento. Detectar estas anomalias rapidamente permite intervenir antes de que afecten a otros procesos o usuarios.
Jobs de larga duracion
Un job que excede su duracion normal puede indicar:
- Bloqueos en la base de datos
- Crecimiento inesperado de datos
- Problemas de rendimiento subyacentes
Job Executions Summary
Job Executions stat
Resumen de ejecuciones en el periodo seleccionado.
Metricas mostradas:
- Successful Executions: Numero de jobs ejecutados correctamente
- Failed Executions: Numero de jobs fallidos
- Cancelled Steps: Numero de pasos cancelados
- Failed Steps: Numero de pasos fallidos
Importancia: Este resumen proporciona una vision rapida de la salud operacional. Los jobs fallidos pueden significar backups incompletos, ETL rotos, o mantenimiento no ejecutado. Cada fallo tiene potencial impacto en la integridad de datos, SLAs de negocio o cumplimiento regulatorio.
Umbrales:
| Metrica | Valor | Color |
|---|---|---|
| Failed Executions | >= 1 | Rojo |
| Cancelled Steps | >= 1 | Magenta |
| Failed Steps | >= 1 | Magenta |
Jobs Enabled/Disabled
Jobs Enabled stat
Numero de jobs habilitados en el servidor.
Importancia: Monitorizar el numero de jobs habilitados ayuda a detectar cambios no autorizados en la configuracion. Un job deshabilitado accidentalmente puede resultar en backups no realizados, datos no procesados o reportes no generados.
Jobs Disabled stat
Numero de jobs deshabilitados en el servidor.
Importancia: Jobs deshabilitados deben ser revisados periodicamente. Pueden ser jobs obsoletos que deben eliminarse, o jobs criticos deshabilitados temporalmente que nunca se reactivaron. Mantener un inventario limpio mejora la mantenibilidad del sistema.
Job History Table
Job History table
Historial de ejecucion de jobs en el periodo de tiempo seleccionado.
Columnas:
- Job Name
- Step
- Status
- Execution Date
- Duration
Importancia: El historial detallado permite analizar tendencias, identificar patrones de fallos recurrentes, y establecer baselines de duracion normal. Es esencial para auditorias y para demostrar cumplimiento de SLAs.
Mapeo de estados:
| Estado | Color |
|---|---|
| Success | Verde |
| Running | Amarillo |
| Cancelled | Naranja |
| Failed | Rojo |
Usually Failed Jobs
Usually Failed Jobs table
Jobs que fallan frecuentemente (patron de fallos recurrentes).
Importancia: Los jobs con fallos recurrentes representan deuda tecnica que debe abordarse. Cada fallo consume tiempo de administracion, genera alertas innecesarias (alert fatigue), y puede enmascarar problemas mas graves. Resolver estos jobs mejora la confiabilidad general del sistema.
Jobs que fallan recurrentemente
Los jobs que fallan de forma consistente deben investigarse inmediatamente. Pueden indicar:
- Configuracion incorrecta
- Permisos insuficientes
- Dependencias rotas
- Problemas de conectividad
Success vs Failed Chart
Success vs Failed timeseries
Grafico de evolucion de ejecuciones exitosas vs fallidas.
Importancia: La visualizacion temporal permite identificar correlaciones entre fallos y eventos especificos (despliegues, cambios de configuracion, picos de carga). Tambien ayuda a detectar degradacion gradual del sistema antes de que se convierta en un problema critico.
Guia de Interpretacion
Prioridades de Investigacion
| Situacion | Prioridad | Accion |
|---|---|---|
| Job fallido | Alta | Revisar logs de error inmediatamente |
| Job excede duracion | Media | Investigar bloqueos y rendimiento |
| Job cancelado | Media | Determinar si fue intencional |
| Patron de fallos | Alta | Analisis de causa raiz |
Metricas Clave
| KPI | Objetivo | Interpretacion |
|---|---|---|
| Success Rate | > 99% | Estabilidad de operaciones |
| Failed Executions | 0 | Cada fallo requiere investigacion |
| Duration Exceeded | 0 | Sin jobs bloqueados |
Vistas Utilizadas
| Vista | Descripcion |
|---|---|
[JobStatus].[vwRunningJobs] | Jobs actualmente en ejecucion |
[JobStatus].[vwRunningExceedDuration] | Jobs que exceden duracion normal |
[JobStatus].[vwCountStatus] | Conteo de estados de ejecucion |
[JobStatus].vwJobsEnabled | Cantidad de jobs habilitados |
[JobStatus].[vwJobsDisabled] | Cantidad de jobs deshabilitados |
Mejores Practicas para SQL Server Agent Jobs
Configuracion de Jobs
- Documentar el proposito: Cada job debe tener una descripcion clara de su funcion y propietario
- Categoria apropiada: Asignar jobs a categorias logicas facilita la administracion y el filtrado
- Cuenta de ejecucion: Usar cuentas de servicio con privilegios minimos necesarios (principio de least privilege)
- Programacion coherente: Evitar solapamientos de jobs que compitan por los mismos recursos
- Timeouts: Configurar limites de tiempo razonables para evitar jobs que se ejecuten indefinidamente
Configuracion de Notificaciones
- Notificar en fallos: Configurar alertas por email o evento para fallos de jobs criticos
- Operadores definidos: Mantener operadores actualizados con direcciones de correo validas
- Escalar apropiadamente: Configurar notificaciones escalonadas para fallos repetidos
- Evitar sobre-notificacion: No notificar exitos rutinarios para prevenir alert fatigue
Manejo de Errores
- Accion ante fallo: Definir si el job debe continuar o detenerse al fallar un paso
- Reintentos automaticos: Configurar reintentos para errores transitorios (conectividad, bloqueos)
- Intervalo entre reintentos: Espaciar reintentos para permitir recuperacion del sistema
- Logging detallado: Habilitar logging suficiente para diagnostico sin impactar rendimiento
Mantenimiento de Jobs
- Revision periodica: Auditar jobs mensualmente para eliminar obsoletos
- Actualizacion de credenciales: Rotar passwords de cuentas de servicio segun politicas
- Pruebas post-cambios: Validar jobs despues de actualizaciones de SQL Server o cambios de esquema
- Control de versiones: Documentar cambios en jobs criticos con fecha y responsable
Estrategias de Troubleshooting
Job Fallido
- Revisar el mensaje de error en el historial del job (Job Activity Monitor o msdb.dbo.sysjobhistory)
- Verificar permisos de la cuenta de servicio en todos los recursos accedidos
- Comprobar conectividad si el job accede a recursos externos (linked servers, archivos de red)
- Revisar espacio en disco si involucra escritura de archivos o backups
- Verificar estado de servicios dependientes (SQL Server Agent, servicios externos)
- Revisar cambios recientes en el servidor o en la base de datos afectada
Job con Duracion Excedida
- Verificar bloqueos activos usando sp_who2 o sys.dm_exec_requests
- Revisar el plan de ejecucion para identificar operaciones costosas
- Comprobar estadisticas y fragmentacion de indices en tablas involucradas
- Analizar crecimiento de datos desde ultima ejecucion normal
- Verificar recursos del servidor (CPU, memoria, I/O) durante la ejecucion
- Comparar con ejecuciones anteriores para identificar cambios de comportamiento
Job Cancelado Inesperadamente
- Revisar quien cancelo el job (SQL Server Error Log, Event Viewer)
- Verificar si hubo reinicio del servicio SQL Server Agent
- Comprobar failover en entornos de alta disponibilidad (Always On, Clustering)
- Revisar politicas de timeout configuradas en el job
- Verificar scripts de mantenimiento que puedan cancelar jobs
Jobs con Fallos Recurrentes
- Identificar patron: mismo error, misma hora, mismo dia de semana
- Correlacionar con eventos: backups, reindexacion, picos de uso
- Revisar dependencias: stored procedures, linked servers, archivos
- Analizar logs historicos para encontrar cuando comenzo el problema
- Probar en ambiente controlado si es posible reproducir el error
- Escalar a desarrollo si el problema esta en el codigo del job
Referencias de Microsoft
Para profundizar en la administracion y troubleshooting de SQL Server Agent, consulte la documentacion oficial:
- SQL Server Agent - Introduccion general al servicio
- Crear un Job - Guia paso a paso para crear jobs
- Programar un Job - Configuracion de programaciones
- Configurar Operadores - Gestion de destinatarios de alertas
- Alertas de SQL Server Agent - Configuracion de alertas automaticas
- Ver Historial de Jobs - Monitoreo de actividad de jobs
- Implementar Seguridad en SQL Server Agent - Mejores practicas de seguridad
- Solucionar Problemas de Jobs con Error - Guia de troubleshooting
