對於給定的時間點,資產具有有效的價格。一些資產每週有一次新價格,一天一次。最近的價格是「有效價格」。如何調整臨時SQL Server表的性能
存儲所描述的關係的時態表看起來是這樣的:
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
需要重新計算有效價格。我相信我無法創建索引視圖,因爲在索引視圖中不允許使用相關的聚合函數。
如何調整表格以非常快地檢索有效價格(最新價格)?
哪個查詢需要「非常少量的時間」來計算價格? – 2012-01-19 01:27:28
@ypercube查詢找到一個'AssetId'的有效價格是幾個計算中的瓶頸 - 它需要一個子查詢,非常像Rubens Farias在他的答案中寫的那個子查詢。 – Mike 2012-01-19 16:27:34