Em certos momentos cotidianos pode ser que nos deparamos com situações aonde é necessário descobrir qual usuários estão conectados ao SQL Server ("leia-se travando o acesso a base e atrasando todo mundo") contudo muitas vezes não basta somente descobrir qual login de usuário esta conectado ou qual operação esta consumindo mais recurso dos servidores, pois diversas aplicações geralmente compartilham de um mesmo usuário para se conectar, sendo até um próximo assunto para discutindo futuramente em tópicos de segurança de dados, onde cenário ideal é cada aplicação possuir um usuário próprio tão somente para uso exclusivo da aplicação.
Para maiores detalhes do consumo podemos estar executando o script a seguir,
que lhe retorna uma grande gama de informações mais detalhadas:
SELECT que lhe retorna uma grande gama de informações mais detalhadas:
t1.session_id,
CONVERT(varchar(10), t1.status) AS status,
CONVERT(varchar(15), t1.command) AS command,
CONVERT(varchar(10), t2.state) AS worker_state,
w_suspended =
CASE t2.wait_started_ms_ticks
WHEN 0 THEN 0
ELSE t3.ms_ticks - t2.wait_started_ms_ticks
END,
w_runnable =
CASE t2.wait_resumed_ms_ticks
WHEN 0 THEN 0
ELSE t3.ms_ticks - t2.wait_resumed_ms_ticks
END
FROM
sys.dm_exec_requests AS t1 INNER JOIN sys.dm_os_workers AS t2
ON t2.task_address = t1.task_address
CROSS JOIN sys.dm_os_sys_info AS t3
WHERE
t1.scheduler_id IS NOT NULL
ORDER BY
t1.session_id DESC;
GO
Resultado:
Nenhum comentário:
Postar um comentário