デバイス ID (int)、logdate (日時)、および値 (10 進数) (SQL Server 2008) で構成される測定値を保存するテーブルを作成する必要があります。測定値は常に四半期で、たとえば 00:00、00:15、00:30、00:45、01:00、01:15 などです。そのため、特定の日付以降の四半期の量を定義する int を考えていました。 datetime よりも優れたパフォーマンスが得られます。
通常、取得は次の方法で行います。
-where DeviceId = x and QuarterNumber between a and b
-where DeviceId in (x, y, ...) and QuarterNumber between a and b
-where DeviceId = x and QuarterNumber = a
このテーブルに最適なデザインは何ですか?
PK DeviceId int
PK QuarterNumber int
Value int
また
PK MeasurementId int
UQ QuarterNumber int
UQ DeviceId int
Value int
(UQ=ユニークインデックス)
それともまったく違うものですか?
ありがとう!