ピーク時間を知る必要はないと思います。完全なクエリをラップし、上位 20 のエントリを選択して、SQL でそれらを生成できます。次に例を示します。
select top 20 *
from (
[...load query here...]
) qry
order by LoadPerSecond desc
この回答には、平均についての良い教訓がありました。1 時間あたりの負荷を調べて 3600 で割ることで、1 秒あたりの負荷を計算できます。
先週の負荷を最初に垣間見るには、(Sql Server 構文) を試すことができます。
select datepart(dy,createdate) as DayOfYear,
hour(createdate) as Hour,
count(*)/3600.0 as LoadPerSecond
from message
where CreateDate > dateadd(week,-7,getdate())
group by datepart(dy,createdate), hour(createdate)
1 分あたりのピーク負荷を見つけるには、次のようにします。
select max(MessagesPerMinute)
from (
select count(*) as MessagesPerMinute
from message
where CreateDate > dateadd(days,-7,getdate())
group by datepart(dy,createdate),hour(createdate),minute(createdate)
)
datepart(dy,...) によるグループ化は、月の境界を気にせずに日を区別する簡単な方法です。1 年以上前に選択するまでは機能しますが、これはパフォーマンス クエリでは珍しいことです。