La organización a la que consultaba tenía un tráfico extremadamente pesado desde varias aplicaciones móviles y también tenía muchas API donde los datos se cargaban y descargaban constantemente. La pregunta surgió porque queríamos saber qué aplicación de una dirección IP específica cuánto mantiene ocupada la base de datos. Aquí está una guía para resolverlo.


SELECT ecs.client_net_address, ecs.client_tcp_port, ess.[program_name], 
       ess.[host_name], ess.login_name,
       SUM(num_reads) TotalReads, SUM(num_writes) TotalWrites,
       COUNT(ecs.session_id) AS SessionCount
FROM sys.dm_exec_sessions AS ess WITH (NOLOCK) 
INNER JOIN sys.dm_exec_connections AS ecs WITH (NOLOCK) 
ON ess.session_id = ecs.session_id 
GROUP BY ecs.client_net_address, ecs.client_tcp_port, ess.[program_name], 
         ess.[host_name], ess.login_name
ORDER BY SessionCount DESC;

Ahora, cuando ejecute el script anterior, le dará una lista de todas las direcciones IP y su recuento de sesiones. Además, también puede ver cuánto escribe y lee cada una de las direcciones IP en la base de datos.

Con la ayuda de la consulta anterior, pudimos identificar una dirección IP específica que pertenecía a una de las aplicaciones móviles que estaba haciendo muchas lecturas. Lo investigamos más a fondo y descubrimos que la aplicación móvil tenía problemas, que enumeramos para solucionarlo.

(Visitado 43 veces, 1 visitas hoy)