代码性能:SQL Server查询与C#.Net web应用程序
我正在写一个复杂的逻辑来计算销售和客户奖金。我有数百万条记录要计算奖金 我想要专家的意见,这样数学运算就不会花太多时间在网页上显示结果 那么我需要在哪里写计算部分呢?在SQL Server查询(使用存储过程和函数)或ASP.NET和C#.NET(业务逻辑层)中 哪一个是最佳实践?在数据库服务器上处理还是在应用服务器上处理 问候 莫辛JK 我有数百万条记录要计算奖金代码性能:SQL Server查询与C#.Net web应用程序,c#,asp.net,sql-server,performance,C#,Asp.net,Sql Server,Performance,我正在写一个复杂的逻辑来计算销售和客户奖金。我有数百万条记录要计算奖金 我想要专家的意见,这样数学运算就不会花太多时间在网页上显示结果 那么我需要在哪里写计算部分呢?在SQL Server查询(使用存储过程和函数)或ASP.NET和C#.NET(业务逻辑层)中 哪一个是最佳实践?在数据库服务器上处理还是在应用服务器上处理 问候 莫辛JK 我有数百万条记录要计算奖金 我认为最好在数据库中进行计算,以避免将大量数据从数据库传递到应用程序。如果您有数百万条记录,那么我建议您在SQL Server中编写
我认为最好在数据库中进行计算,以避免将大量数据从数据库传递到应用程序。如果您有数百万条记录,那么我建议您在SQL Server中编写计算部分,因为在业务层中进行计算会花费大量时间 以下是改进性能的建议-
- 编写存储过程
- 创建索引以更快地获取记录
- 如果操作是为了大量记录,则使用临时表
您可以在网上搜索T-SQL其他性能优化技术。如果SQL Server数据库中已有数百万行,请在那里处理数据!让存储过程生成结果,将其放入表中,然后仅在ASP.NET网页中显示该表中的结果。如果计算需要大量使用聚合,则可以查看
物化视图
。同意。另外,我建议考虑CLR函数。对于复杂的计算,CLR可能比普通的T-SQL快得多。或者在这种特殊情况下可能不是这样,所以测试是必要的。