これは、マシンのメーター測定値を格納するテーブルの構造です。任意の日付の測定値を取得し、新しい測定値を検証できるように、すべての測定値を保存する必要があります。
私はAssetID、ForDate Descendingにインデックスを持っているので、最新の測定値が一番上にあります。
このテーブルを備えたマシンの最新の検針値を見つけるのに時間がかかりすぎています。2 人以上の人が一度に読み取り値を入力しようとすると、同時実行の問題が発生するため、マシンに対してメーター読み取り値を非正規化したくありません。
これをより速くするための提案はありますか?
編集: これは私の LINQ2SQL クエリです
Dim res = From a In db.AssetMeterReadings Where _
a.AssetID = ast.AssetID And a.ForDate <= dAt.Date _
And a.isInactive = False _
Order By a.ForDate Descending, a.ApproximateReading Descending Take 1