Como descobrir de quem as consultas estão usando mais CPU

Como descobrir de quem as consultas estão usando mais CPU

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Você tem vários usuários no mesmo SQL Server e quer saber quem está usando mais recursos. O SQL Server não facilita isso. Você pode consultar algumas visualizações de gerenciamento para ver quais consultas ou bancos de dados têm usado a maioria dos recursos, mas você não pode dizer intuitivamente quais USUÁRIOS estão.

Para resolver esse problema, vamos usar o Administrador de Recursos.

Esperar. Volte.

Quando o Administrador de Recursos foi lançado pela primeira vez, não teve muita adoção. É um recurso exclusivo da Enterprise Edition e sua principal função é tornar as consultas mais lentas. Isso é bastante lamentável, já que não tenho muitas pessoas vindo até mim dizendo: “Ei, Brent, você pode tornar minhas consultas mais lentas?” Eles não precisam me contratar para isso – eles têm seu próprio departamento de inteligência de negócios para cuidar disso.

Vamos usar apenas parte da funcionalidade do Administrador de Recursos:

  1. Crie pools de carga de trabalho como se fossemos limitar / limitar a capacidade de CPU das pessoas
  2. Crie uma função classificadora para que, quando eles fizerem login, possamos colocá-los em diferentes pools
  3. Defina limites para cada CPU do pool de carga de trabalho
  4. Use DMVs de relatórios do Administrador de Recursos para consultar quem está queimando nossos processadores

Você pode me assistir escrevendo esta postagem do blog ou continuar lendo para o script e a versão demo:

Configure o Administrador de recursos para colocar as pessoas em grupos.

O que você está prestes a ler não é, de forma alguma, qualquer tipo de boa prática. Aqui, estou apenas mostrando como configurar rapidamente o Administrador de Recursos como uma prova de conceito. Qualquer pessoa de banco de dados que valha seu peso no Query Bucks leria a documentação do Administrador de Recursos antes de realmente implementá-la na vida real. Você, caro leitor, não vale realmente o seu peso no Query Bucks, então provavelmente você vai apenas copiar / colar isso na produção. É por isso que gosto de você.

Leia Também  [Video] Como posso medir se meu banco de dados faz mais leituras do que gravações?

Leitores com olhos de águia como você notarão que comentei a RECONFIGURA no final. O Administrador de recursos pode ser muito perigoso: você pode se colocar em uma situação em que as pessoas tenham problemas para executar consultas por causa de erros na função do classificador. Execute primeiro o RECONFIGURE final em um ambiente de desenvolvimento e certifique-se de que está obtendo os resultados que deseja.

Meça quais grupos de usuários estão usando mais CPU.

Para fazer isso, verifique o DMV sys.dm_resource_governor_resource_pools:

O resultado mostra quanta CPU cada grupo consumiu:

Como descobrir de quem as consultas estão usando mais CPU 2

Quando você começar a examinar esses dados, poderá descobrir que sua primeira passagem de criação de pools e grupos termina com dados de relatório não muito granulares. Talvez 80% da CPU do servidor seja consumida por um único grupo – isso não é muito prático. A partir daí, você deseja continuar criando grupos cada vez menores até descobrir exatamente quem ou qual aplicativo está consumindo mais energia da CPU.

O conteúdo deste DMV é redefinido quando o serviço do SQL Server é reiniciado. Você ficará tentado a acumular esses dados registrando-os todos os dias em uma tabela, e acho que é uma má ideia. Assim como você tomou muitas decisões erradas na juventude e precisava de dinheiro, o resto das pessoas de sua equipe também. Sempre que a instância do SQL Server é inicializada, pense nisso como um novo dia. As pessoas que escrevem consultas terríveis podem ter aprendido os erros de seus costumes e virado uma nova página, lido para si mesmas um bom livro Itzik Ben Gan sobre T-SQL e apenas escrito consultas magicamente bem ajustadas desde então.

Ah, provavelmente não.