読者です 読者をやめる 読者になる 読者になる

プログラミングでアイデアを具現化したい

あらゆるものを具現化するためにプログラミングを始めました。主にC#

24時間前のテーブルデータをアーカイブする

SQL

OANDAからFixで取得しているTickデータですが
28通貨の1週間分で約1,000万レコードです。

最初は1週間毎に過去Tickをアーカイブしていこうかと思っていましたが
これでは週後半、テーブルが肥大してきた状況下では
シグナル発信用アプリの動作が遅延しそうです。

ということで毎日バッチで直近24時間分を残して
どんどんアーカイブしていく事にしました。

簡単ですけど、コードは以下。

declare @archiveDateTime datetime2 (7)
--24時間前の時間をセット
set @archiveDateTime = dateadd( hour,-24 ,SYSDATETIME())

INSERT INTO [FIXテーブルバックアップ]
 SELECT * FROM [FIXテーブル]
  WHERE 日時 < @archiveDateTime;

DELETE FROM [FIXテーブル]
 WHERE 日時 < @archiveDateTime;