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
0 B
|👍
/👎
0 B
|👍
/👎