Triaje de un SQL Server lento durante un incidente
Cuándo usarlo: Los usuarios reportan timeouts y necesitas saber quién está bloqueando a quién en los próximos 60 segundos.
Requisitos previos
- Aplicación PerformanceMonitor instalada y conectada al servidor de destino — Descárgala desde GitHub releases y apúntala a tu base de datos de monitoreo
- El login de destino tiene VIEW SERVER STATE — GRANT VIEW SERVER STATE TO [monitor_login]
- MCP registrado con tu cliente — claude mcp add --transport http --scope user sql-monitor http://localhost:5151/
Flujo
-
Obtén el resumen de saludEjecuta el chequeo de salud — ¿hay banderas rojas en esperas, bloqueos o presión de memoria ahora?✓ Copiado→ Lista corta de métricas elevadas
-
Profundiza en el problema principalSi el bloqueo es el problema principal, muéstrame la cadena de bloqueadores principal y el texto SQL de la sesión bloqueadora.✓ Copiado→ SPID específico + texto de consulta
-
Obtén una recomendación¿Debo matar ese SPID, esperar, o hay un índice faltante que evitaría esto? Sé específico.✓ Copiado→ Una acción recomendada clara con justificación
Resultado: Un incidente diagnosticado con una acción específica siguiente — matar, esperar, índice o escalar — en menos de 5 minutos.
Errores comunes
- Matar un bloqueador que estaba a punto de hacer commit puede causar más daño — Siempre pregunta cuánto tiempo lleva ejecutándose y si mantiene una transacción abierta antes de matarlo
- Las métricas de la base de datos de monitoreo retrasan el servidor real por el intervalo del colector — Para vista en vivo, usa las herramientas de 'estado actual' en lugar de historial agregado