这是一个加载的问题:) 您应该知道一些数据库编程架构设计,以及它们的成本/收益是什么。2 层通常意味着您有一个连接到数据库的客户端,发出直接 SQL 调用。3 层通常意味着您有一个“应用程序服务器”,它向数据库发出直接 SQL 调用,但客户端正在与应用程序服务器通信。通常,这提供了“横向扩展”。最后,您有 2 1/2 分层的应用程序,它们采用类似 2 层的格式,只有工作在存储过程中被划分。
您的流程听起来像是“后台”之类的东西,客户/流程只需要每月汇总和缓存一次的结果。也就是说,没有代理连接,并且经常连接,并说“做这些计算”。相反,你暗示了一个偶尔发生的过程,你可以摆脱非实时。
因此,考虑到这些要求,我会说,一般来说,靠近数据会更快,让 SQL Server 完成所有计算。我想你会发现接近数据会很好地为你服务。
但是,在执行这些计算时,您可能会发现某些计算不适用于 SQL Server。以计算债券或任何固定收益工具的应计利息为例。在 SQL 中不是很漂亮,更适合更丰富的编程语言。但是,如果您只有简单的平均值和其他相对健全的聚合,我会坚持使用 SQL 方面的存储过程。
再说一次,没有足够的信息来说明你的计算的性质,或者你的房子在开发人员的 SQL 能力方面要求什么支持,或者你的老板说什么......但是因为我知道我的 SQL 方法,并且喜欢靠近数据,我会为这样的任务保留纯 SQL/存储过程。
YMMV :)