对于给定的时间点,资产具有有效价格。有些资产每周有一次新价格,有些则每天一次。最近的价格是“有效价格”。
存储所描述关系的时态表如下所示:
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
查询一个的有效价格AssetId
很简单,但计算起来需要大量的时间。
物理存储数据是理想的,因此只有数据更改为dbo.AssetPrice
需要重新计算有效价格。我相信我无法创建索引视图,因为索引视图中不允许相关的聚合函数。
如何调整表格以快速检索有效价格(最新价格)?