我正在尋找一種使用SQL計算和緩存定期開戶餘額的好方法。SQL中的Efficent期初餘額計算
我知道我可以使用SQL來總結一堆交易從時間的開始到問題的開始,但我更感興趣的是它是否值得高速緩存這些計算餘額(在各個時間點)在另一張桌子?很顯然,這需要在編輯舊事務時使該表無效。
我只是不確定它是否值得麻煩,如果有更簡單的方法來做到這一點,或只是一些關於這個問題的一般建議。
假設很多交易雖然大部分分佈在很多賬戶中,但很多交易都會被過濾掉。我正在使用SQL Server 2008,並確定使用特定於它的功能。
目前我使用:
public Decimal GetAccountBalance(DateTime forDate)
{
var sum=(from t in m_dc.Transactions
where t.date<forDate && t.account_id==m_CurrentAccount.id
select (decimal?)t.amount).Sum();
return sum==null ? 0 : (decimal)sum;
}
聽起來像一份工作,而不是一張桌子...... – 2009-09-24 06:34:12