在T-SQL或运行时执行数学运算

时间:2011-03-14 17:08:31

标签: silverlight tsql reporting-services

我目前正在处理一份报告,其中报告的结果是在存储过程中生成的。

对于此报告,我将返回分别包含分子和分母的记录列表。显示报告时,需要在这些数字旁边显示实际百分比结果(分子/分母)。

问题变成了在存储过程中生成这些百分比并让它们返回计算的百分比或仅返回两个数字并使报告的运行时环境生成百分比是一个很大的性能提升?

报告的运行时环境会有所不同,它主要是通过WCF Web服务传递的Silverlight应用程序内的页面。另外,还会提供rdlc报告查看器选项,以便他们可以直接通过浏览器查看报告。

3 个答案:

答案 0 :(得分:1)

很难回答这个问题 - 从广义上讲,我猜你不会担心这件事 - 毫无疑问。毫无疑问。

但是,出于理智原因,我会在服务器上执行此操作。如果计算有任何业务影响,您希望无论系统运行报告,它都是一致的。

哦,并测试四舍五入 - 不同的应用程序以不同的方式进行,通常以意想不到的方式......

答案 1 :(得分:0)

如果您不需要对结果执行查询,并且这不是一个复杂的计算,那么我会让客户计算百分比有两个原因。

1-它将减少线路上的数据量。

2-如果您的服务器必须每秒处理大量查询,则会减少其有效负载。

但是,在这两种情况下,只有在涉及大量数据时才会注意到更改。

答案 2 :(得分:0)

如果您正在考虑像MVVM这样的体系结构,那么您需要避免在proc中执行此操作,并且只返回与模型相关的值。然后,您可以扩展模型以包含计算字段。

如果您正在寻找'get-r-done'方法,那么只需在查询中计算它。既然你无论如何都要发送这两个值,那么就不会增加成本(不管怎么说都没有)。一个简单的鸿沟不会减慢你的速度。