我正在使用c#和sql server 2008开发一个应用程序,以自动化一个运动俱乐部,我差不多完成了。 现在我通过在sql server中创建存储过程来为我的app做报告,该存储过程在传递一些参数后返回c#app的数据,并且报告的结果如分组,返回的字段数根据发送的参数而改变。 我的问题是更好地在sql server中进行分组并返回最后的结果并在c#report中显示它或者在没有分组或排序的情况下获取数据并在c#报告中执行它你知道在c#报告中你可以创建组并选择哪些字段到
分组提前致谢。
答案 0 :(得分:4)
这取决于。如果LINQ是一个选项(意味着您正在使用实体框架或未使用存储过程),那么您可以以编程方式更改C#代码中的group by
,同时仍在服务器上执行分组。
如果您无法使用LINQ / Entity模型,但group by
可能会动态更改,请在应用程序级别执行分组,以便您可以根据用户参数对数据进行分组,而无需使用十亿个不同的查询选项。
否则,在服务器上执行它,因为这会减少带宽消耗,在传输时间方面更快,并且通常更快,因为SQL(和通用数据库)分组比在C#中执行的速度快得多。 / p>
以下是感兴趣的链接:
答案 1 :(得分:3)
有几个相互竞争的因素:
对于体育俱乐部应用程序,我强烈怀疑您不会为SQL服务器负担过重。如果是这种情况,我会在SQL服务器上进行分组。