我有一个在ASP.NET技术中运行的现有项目。目前,整个业务逻辑计算正在数据库sProcs (MS )中进行。有时,当大量用户在一天中繁忙的时间使用该应用程序时,它会变得很慢。
现在,我们希望将一些业务逻辑处理移出DB,并在业务层(C#)端执行它。我试图了解如何从数据库中获取数据并对其执行一些计算,然后再将提供的数据保存回DB。
我可以从DB中获取原始数据,然后将其序列化为XML,然后将该XML传递给BL层。在BL层中,XML将反序列化为强类型的业务对象。然后,使用Linq,我可以对其执行一些操作(如Sum、Avg等)。
请提出你的建议。
发布于 2017-02-17 17:44:06
注意!如果我正确地理解你,你所描述的将会慢得多。
如果在SQL中运行聚合操作,如Sum、Avg等,它们的速度相当快。只有在对非常大的数据集进行操作时,它们才会很慢。如果您有一个大型数据集,那么将整个数据集传输到客户端并在那里执行聚合操作要慢得多。序列化到XML并再次反序列化将使其速度更慢。
首先,您可能应该仔细研究一下为什么会出现性能问题。您可能会遇到一些锁定问题或效率低下的查询。
我认为业务逻辑这一术语通常过于宽泛。某些形式的业务逻辑属于数据库,有些形式属于客户端。对数据执行连接、过滤或聚合的所有业务逻辑都属于数据库。如果你把它转移到客户端,你只会遇到可怕的性能问题。
https://softwareengineering.stackexchange.com/questions/342473
复制相似问题