2012-04-18 49 views
6

我正在编写一个复杂的逻辑来计算销售额和客户奖金。我有百万条记录来计算奖金。代码性能:SQL Server查询与C#.Net Web应用程序

我想要专家的意见,以便数学运算不需要太多时间来在网页上显示结果。

那么我需要写计算部分?在SQL Server查询(使用存储过程和函数)或ASP.NET中使用C#.Net(业务逻辑层)?

哪一个是最佳做法?在数据库服务器上处理还是在应用服务器上处

问候

穆赫辛JK

+1

如果那些*数百万行*已经在SQL Server数据库中 - 处理那里的数据!让存储过程生成结果,将其放入表中,然后在ASP.NET网页中显示该表的结果。 – 2012-04-18 07:27:35

+0

如果你的计算需要大量使用聚合,你可以看看'物化视图'。 http://en.wikipedia.org/wiki/Materialized_view – edze 2012-04-18 08:08:53

回答

4

如果您有数百万条记录,那么我会建议您在SQL Server中编写计算部分,因为业务层中的计算会花费更多时间。

以下是建议,以提高性能 -

  • 编写存储过程
  • 创建索引获取记录更快
  • 使用临时表如果manupulation是巨大的记录

你可以在网上搜索以找出T-SQL其他性能优化技术。

+1

同意。另外,我建议考虑CLR功能。对于复杂的计算,CLR可能比普通的T-SQL快得多。或者它可能不在这种特殊情况下,所以测试是必要的。 – VladV 2012-04-18 07:56:58

1

我有记录万元来计算奖金

我觉得这是更好地计算出它的数据库,以避免从传递数据的大量数据库应用程序。