Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
代码性能:SQL Server查询与C#.Net web应用程序_C#_Asp.net_Sql Server_Performance - Fatal编程技术网

代码性能:SQL Server查询与C#.Net web应用程序

代码性能: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查询(使用存储过程和函数)或ASP.NET和C#.NET(业务逻辑层)中

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

问候

莫辛JK

我有数百万条记录要计算奖金


我认为最好在数据库中进行计算,以避免将大量数据从数据库传递到应用程序。

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

以下是改进性能的建议-

  • 编写存储过程
  • 创建索引以更快地获取记录
  • 如果操作是为了大量记录,则使用临时表

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

如果SQL Server数据库中已有数百万行,请在那里处理数据!让存储过程生成结果,将其放入表中,然后仅在ASP.NET网页中显示该表中的结果。如果计算需要大量使用聚合,则可以查看
物化视图
。同意。另外,我建议考虑CLR函数。对于复杂的计算,CLR可能比普通的T-SQL快得多。或者在这种特殊情况下可能不是这样,所以测试是必要的。