segunda-feira, 6 de agosto de 2012

Monitorar CPU SQL SERVER

Olá,

Segue aqui uma dica muito interessante, onde pode ajudar muitos administradores do SQL Server que não tem acesso a máquina, monitorar o consumo de CPU tanto do Servidor quanto ao do SQL Server.

Para conseguir acessar esse recurso vamos utilizar asDMV

 sys.dm_os_sys_info (Transact-SQL)



Essa DMV retorna informações sobre o computador no qual o SQL Server foi instalado, inclusive os recursos disponíveis e consumidos pelo SQL Server.

WITH MonitorCPUSQLSERVER AS

(

SELECT DATEADD(ms,(select [ms_ticks]-[timestamp] from sys.dm_os_sys_info),

GETDATE()) AS 'EventDateTime',

CAST(record AS xml) AS 'record'

FROM sys.dm_os_ring_buffers

WHERE ring_buffer_type = 'RING_BUFFER_SCHEDULER_MONITOR'

AND [timestamp] > (select [ms_ticks] - 30*60000 -- Visualizar os ultimos 30 min.

from sys.dm_os_sys_info)

)

SELECT

CONVERT (varchar, EventDateTime, 126) AS EventTime,

SysHealth.value('ProcessUtilization[1]','int') AS 'CPU (SQL Server)',

100 - SysHealth.value('SystemIdle[1]','int') AS 'CPU (Todos os Processos)'

FROM MonitorCPUSQLSERVER CROSS APPLY record.nodes('/Record/SchedulerMonitorEvent/SystemHealth') T(SysHealth)

ORDER BY EventDateTime DESC

É isso espero que essa dica seja util!

Nenhum comentário:

Postar um comentário