Search

Wednesday, July 27, 2011

Calculate the need for extra CPU´s

This code can help to calculate how muche xtra CPU power is needed in an sql 2005/8. The first line is to clear the waitstats table. Donto run this if you like to check historic need.

dbcc sqlperf('sys.dm_os_wait_stats', clear)

select round(((convert(float, ws.wait_time_ms) / ws.waiting_tasks_count) / (convert(float, si.os_quantum) / si.cpu_ticks_in_ms) * cpu_count), 2) as Additional_CPUs_Necessary,
round((((convert(float, ws.wait_time_ms) / ws.waiting_tasks_count) / (convert(float, si.os_quantum) / si.cpu_ticks_in_ms) * cpu_count) / hyperthread_ratio), 2) as Additional_Sockets_Necessary
from sys.dm_os_wait_stats ws cross apply sys.dm_os_sys_info si where ws.wait_type = 'SOS_SCHEDULER_YIELD'

1 comment:

  1. select round(((convert(float, ws.wait_time_ms) / ws.waiting_tasks_count) / (convert(float, si.os_quantum) / si.ms_ticks) * cpu_count), 2) as Additional_CPUs_Necessary,
    round((((convert(float, ws.wait_time_ms) / ws.waiting_tasks_count) / (convert(float, si.os_quantum) / si.ms_ticks) * cpu_count) / hyperthread_ratio), 2) as Additional_Sockets_Necessary
    from sys.dm_os_wait_stats ws cross apply sys.dm_os_sys_info si where ws.wait_type = 'SOS_SCHEDULER_YIELD' for Mssql 2008

    ReplyDelete