Antecedentes curtos:
Eu trabalho na empresa A, na empresa A temos um DBA que não deveria ser. Quando somos encarregados de solucionar problemas com itens que exigem um retorno rápido, geralmente demora um pouco mais do que deveria.
Por esse motivo, pedimos a ele que me concedesse acesso DBO a determinados servidores (servidores Biztalk SQL). Sou eu quem está descartando arquivos e monitorando essas coisas, às vezes durante a noite, e ultimamente temos experimentado lentidão no sistema.
Portanto, com esses problemas com o Biztalk, entrei no servidor SQL e tentei pesquisar, mas parece que a maioria deles exige privilégios mais altos do que os meus. Procurei consultas suspensas, matei-as, mas como DBO, queria saber até que ponto posso monitorar e descobrir os trabalhos atualmente em execução/suspensos.
Estou familiarizado com o exec sp_who2
e kill %%
, fora isso, tenho batido em uma parede ...
Minha pergunta:
Há algum recurso útil que eu possa utilizar como DBO que ajudará a identificar a causa dessas consultas suspensas? Além de who e who2?
Alguma pergunta caseira que vocês escreveram para identificar essas causas desses erros?
Qualquer ajuda é muito apreciada!
Embora fazer login na máquina e analisar a cadeia de espera no Monitor de recursos possa fornecer algumas informações extras (por exemplo, se o thread sqlservr.exe estiver bloqueado aguardando lsass.exe, isso pode significar que está bloqueado em uma validação de autenticação), o que você realmente deseja é obter a
VIEW SERVER STATE
permissão para que você possa visualizar os DMVs que podem ajudá-lo, como estes, por exemplo:Eu sugeriria usar sp_WhoIsActive - desde que você tenha acesso aos dados do DMV.
Como alternativa, você pode usar consultas de diagnóstico de Glen Berry ou sp_AskBrent .
Um bom começo seria uma metodologia de solução de problemas de desempenho para SQL Server