我在asp.net/C#/Mysql中有一个web项目,其中数据最多可以处理大约30,000行数据。 它是一个报告工具,我必须在几个级别上显示计数和总和等统计数据。
我想知道哪种方法可以解决这个问题。
我可以将数据过滤到有限的列,但我可以查询。
现在,是将数据(所有行)提供给我的应用加载的好方法,每当用户查询我可以过滤该数据并执行计算时代码并显示我的统计信息。
或者我可以使用存储过程进行所有计算,每次用户查询时,我都可以调用存储过程并获取统计信息。
由于
答案 0 :(得分:2)
数据库已经过优化,可以进行这种数据操作。而且,由于你减少了网络负载,我会投票给第二个选项。
另一种可能性是考虑某种OLAP解决方案,其中事务数据已经合并为较小的数据块,而这些数据又可以轻松查询。
答案 1 :(得分:1)
我绝对会选择第二种选择。您正在谈论的是Web应用程序,如果您想要在加载时获取所有数据,那么您必须将其存储在某处以便在回发期间保留它。如果您选择将其存储在会话状态,则最终会占用Web服务器内存,因为您有多个用户访问您的站点。
如果您将其存储在视图状态,那么您将收到一个非常大的客户端响应,这将使您的页面在客户端加载速度非常慢,并将导致网络流量。
选项2是最好的,因为存储过程是预编译的,这意味着它们在性能方面要好得多。您还将减少网络流量。