2009-09-24 323 views
1

我正在尋找一種使用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; 
    } 
+0

聽起來像一份工作,而不是一張桌子...... – 2009-09-24 06:34:12

回答

2

如果我理解正確的話則是問有關緩存和的結果。

我的想法是,當你不知道它會成爲問題時,爲什麼還要努力去優化呢?你可能會增加不必要的複雜性並花費不必要的時間。

+0

是優化前的措施 – Mark 2009-09-24 09:05:55

+0

你說得對,當然......這只是在每個頁面視圖上重複添加這些東西真的困擾我。 (通常我開發的是實時音樂軟件,其性能至關重要 - 我花費了相當多的精力不浪費任何東西,我想我只需要讓這個項目順利進行:) 無論如何感謝。 – 2009-09-25 02:12:49