SQL中高效的期初余额计算

时间:2009-09-24 06:32:37

标签: sql sql-server linq-to-sql

我正在寻找一种使用SQL计算和缓存定期开户帐户余额的好方法。

我知道我可以使用SQL来总结从一开始到相关时段开始的一堆交易,但我更感兴趣的是它是否值得缓存那些计算的余额(在不同的时间点)在另一张桌子?显然,这需要在编辑旧事务时使该表无效。

我只是不确定这是否值得麻烦,如果有更简单的方法,或只是一些关于这个问题的一般性建议。

假设许多交易虽然主要分布在许多帐户中,但很多交易都会从计算中过滤掉。我正在使用SQL Server 2008和OK来使用特定于它的功能。

目前我正在使用:

    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;
    }

1 个答案:

答案 0 :(得分:2)

如果我理解正确,你要求缓存一笔金额的结果。

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