一時的なSQLサーバーテーブルのパフォーマンスを調整する方法
-
30-10-2019 - |
質問
特定の時点で、資産には効果的な価格があります。一部の資産には、週に1回、新しい価格があり、1日に1回は新しい価格があります。最新の価格は「効果的な価格」です。
記載されている関係を保存する一時的なテーブルは次のようになります。
CREATE TABLE dbo.AssetPrice
(
AssetId int NOT NULL -- FK to the table dbo.Asset
,EffectiveDate datetime NOT NULL
,Price decimal NOT NULL
CONSTRAINT PK_AssetPrice PRIMARY KEY CLUSTERED (AssetId,EffectiveDate,Price)
)
データは次のようになります:
AssetId EffectiveDate Price
------- ------------- -----
1 2012-01-11 1.21
1 2012-01-12 1.22
2 2012-01-11 3.55
2 2012-01-12 3.60
3 2012-01-04 5.15
3 2012-01-11 5.14
anの効果的な価格を照会します AssetId
簡単ですが、計算にはわずかな時間がかかります。
データを物理的に保存することが理想的です。そうすれば、データのみが変更されるように dbo.AssetPrice
効果的な価格の再計算が必要です。インデックス付きビューでは関連する集計関数が許可されていないため、インデックス付きビューを作成できないと思います。
テーブルを調整して、効果的な価格(最新の価格)を非常に迅速に取得するにはどうすればよいですか?
正しい解決策はありません
所属していません StackOverflow