SQL中的Efficent期初余额计算

SQL中的Efficent期初余额计算

问题描述:

我正在寻找一种使用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

如果我理解正确的话则是问有关缓存和的结果。

我的想法是,当你不知道它会成为问题时,为什么还要努力去优化呢?你可能会增加不必要的复杂性并花费不必要的时间。

+0

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

+0

你说得对,当然......这只是在每个页面视图上重复添加这些东西真的困扰我。 (通常我开发的是实时音乐软件,其性能至关重要 - 我花费了相当多的精力不浪费任何东西,我想我只需要让这个项目顺利进行:) 无论如何感谢。 – 2009-09-25 02:12:49