Olá galera eu gostaria de compartilhar com vocês uma dica para os DBA’s SQL Server iniciantes que é como descobrir o uso de CPU no SQL Server.
Recentemente trabalhei em um caso onde o cliente entrou em contato comigo informando que o consumo de CPU no servidor de banco de dados SQL estava muito alto.
Ao acessar a instância SQL Server dei uma olhada nas consultas em execução e dei uma olhada também nas consultas guardadas no cache do servidor que estavam consumindo muito recurso de CPU.
Não tinha nenhuma consulta consumindo recursos de CPU em ambas as verificações. Então o que seria?
Existem várias formas de verificar o consumo de CPU no servidor, a mais comum é verificar nos processos do servidor e ordenar por uso de CPU.
Isso pode ser visto em Windows, através da ferramenta Task Manager é possível encontrar essa informação.
O que eu quero compartilhar aqui com vocês é um script onde você pode descobrir se o consumo de CPU está no SQL Server diretamente no banco de dados.
-- CPU Usage SQL Server
DECLARE @ts_now bigint = (SELECT cpu_ticks/(cpu_ticks/ms_ticks)FROM sys.dm_os_sys_info);
SELECT TOP(1000)
[record_id],
SQLProcessUtilization AS [SQL Server Process CPU Utilization],
SystemIdle AS [System Idle Process],
100 - SystemIdle - SQLProcessUtilization AS [Other Process CPU Utilization],
DATEADD(ms, -1 * (@ts_now - [timestamp]), GETDATE()) AS [Event Time]
FROM (
SELECT record.value('(./Record/@id)[1]', 'int') AS record_id,
record.value('(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]', 'int')
AS [SystemIdle],
record.value('(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]',
'int')
AS [SQLProcessUtilization], [timestamp]
FROM (
SELECT [timestamp], CONVERT(xml, record) AS [record]
FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR'
AND record LIKE '%<SystemHealth>%') AS x
) AS y
ORDER BY record_id DESC;
Ao executar a consulta acima, vocês terão em resumo um resultado próximo do que está na imagem abaixo:
Coisas que você pode fazer com essas informações:
Um grande abraço a todos, espero que gostem da dica.
Está com problemas de performance no seu banco de dados? Entre em contato para solicitar um DBA SQL Server Remoto para sua empresa.
Saiba como a função UPPER() no SQL Server pode degradar a performance das suas consultas…
Saiba agora mesmo como você pode diminuir o RESOURCE_SEMAPHORE_QUERY_COMPILE no SQL Server. Recentemente eu trabalhei em…
Nós DBA' e desenvolvedores quase sempre temos que trabalhar com datas quando se trata de…
Quais são as diferentes maneiras de proteger o login Senha do Administrador (SA)? Todos estão…
Com os direitos que o login sa tem por padrão no SQL Server, é obrigatório…
Como um DBA, você tem a responsabilidade de garantir a segurança do aplicativo e dos…