我需要你对数据处理的建议。 我的服务器是一个数据服务器(使用SQL Server 2005)。我的客户端将从服务器获取数据,并在Windows上显示它们。
服务器和客户端在Internet上(而不是LAN)。因此,获取客户端的时间取决于数据的大小和互联网速度。
假设:SQL Server有一个包含2列(值和更改)的表,客户端将从此表中获取数据(存储在数据表中)并将其显示在具有3列的datagridview上:Value,Change和ChangePercent
注意:ChangePercent =更改/值;
我有一个问题:ChangePercent字段中的数据应该在服务器或客户端计算?
如果我在服务器上,如果有很多客户端,服务器将是开销。此外,返回客户端的数据更大(3个字段的数据)。
如果我在客户端上,客户端将只获取包含2个字段(值和更改)的数据。 ChangePercent列中的数据将在客户端计算。
P / S:客户端和服务器之间的连接是通过.net远程处理。客户端是一个winform C#2.0。
感谢。
答案 0 :(得分:2)
在客户端上进行计算。 几乎可以肯定,除了不应该在数据库服务器上计算业务逻辑这一事实外,计算将比在线上获得额外字段更快。
假设所有变量属于同一类型,在服务器上进行计算时,不必要地将数据传输增加33%。这显然只对大型结果集很重要。
答案 1 :(得分:1)
我不认为你这么做很重要,对于服务器或客户端来说,除法操作不会有太大的开销。但是考虑到你必须在客户端上编写代码来处理可以在服务器上处理的非常简单的操作。
编辑:您可以创建一个测试表,例如,1.000.000记录,并查看该部门的实际执行时间,不带它。
答案 2 :(得分:0)
我建议使用方法#2:发送2个字段,让第三个字段由客户端计算。 客户端的相对计算量非常小。