private775 icon

[SQL] SharePoint performance counters aggregated by time

private775 | PRO | 10/17/19 11:03:31 AM UTC | 0 ⭐ | 6810 👁️ | Never ⏰ | []
T-SQL |

1.21 KB

|

None

|

0 👍

/

0 👎

declare @startDate datetime
declare @increment int
declare @perfCounter nvarchar(100)
declare @machineName nvarchar(100)
declare @startOfTheDay datetime
declare @numofpoints int
 
 
-- set @perfCounter = '% Processor Time'
set @perfCounter = 'Available Mbytes'
set @machineName = 'CONTOSO'
 
set @increment = 15
set @numofpoints = 100
 
set @startDate = DATEADD(minute, -1 * (@numofpoints + 1) * @increment,  GETDATE())
 
-- set @startOfTheDay = DATEFROMPARTS(YEAR(@startDate), MONTH(@startDate), DAY(@startDate))
set @startOfTheDay = convert(datetime, (convert(varchar, @startDate, 112)), 112)
print @startOfTheDay
set @startDate = DATEADD(minute, Floor(DATEDIFF(minute, @startOfTheDay, @startDate)/@increment)*@increment, @startOfTheDay)
 
SELECT top(@numofpoints)
      DATEADD(minute, Floor(DATEDIFF(minute, @startDate, pc.[LogTime])/@increment)*@increment, @startDate) LogTimeN
      ,pc.MachineName
      ,pcd.Counter
      ,avg(pc.[Value]) Avg
      ,min(pc.[Value]) Min
      ,max(pc.[Value]) Max
  FROM [dbo].[PerformanceCounters] pc
  inner join [dbo].[PerformanceCountersDefinitions] pcd on pcd.id=pc.[CounterId]
  where pcd.Counter = @perfCounter
  and pc.logtime >= @startDate
  and pc.MachineName = @machineName
  and pcd.Machine = @machineName
  group by
      DATEADD(minute, Floor(DATEDIFF(minute, @startDate, pc.[LogTime])/@increment)*@increment, @startDate)
      ,pc.MachineName
      ,pcd.Counter
  order by 1 desc

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎