0

こんにちは、30秒ごとにデータを記録するSQLサーバーにいくつかのテーブルがあります。明らかに、しばらくすると少しかさばります。私がやりたいのは、過去24時間にわたって1時間に1つのデータポイントを選択し、それを高速クエリ用の別のテーブルに入れることです。そのため、24時間にわたって1時間ごとに1回考えていました期間は 1 日 2 回、1 週間は 1 日 1 回、1 か月間は 1 日 1 回です。私たちが持っているすべてのデータポイントに日時が記録されています。

24時間1時間に1回はこんな感じでお願いします

選択 * from MiscTBL Where Date >= (( Currentdatetime - 24 hh )) group by hh

アドバイスをありがとう

また、私はSQLサーバー管理スタジオを使用しています。これが自動更新プロセスであれば素晴らしいと思います。そのため、事前に定量化された短い期間でデータのクエリを高速化するために使用できる個別のテーブルがありました

4

1 に答える 1

1

このようなものは、1 時間に 1 つのサンプルを返します。

select *
from ActivityLog
where id in
    (select max(id) maxID
     from ActivityLog
     where activityDateTime between @startDateTime and @endDateTime
     group by DATEPART(hour, activityDateTime))

この概念を使用して、データを移動するストアド プロシージャを構築し、SQL エージェント ジョブを使用して必要な頻度で実行するようにスケジュールします。

于 2014-05-03T19:05:50.060 に答える