2013-08-21 86 views
0

我已经阅读了很多有关在会话/视图状态下存储数据表/集的看法,并且普遍认为它不是一个好主意,因为它减慢了网页的速度..但它有其优点。 Now Iam制作一个网站,允许用户创建/管理/主持quizzes ..我想从数据库中检索一定数量的问题(问题的价值将被定义)并将其存储在会话中维护的数据表... Max 。没有问题应该是120 .. 因此,要存储在会话中的总数据= 120个问题+选项+ correctanswer;以及诸如候选人和用户数据的分数等其他小事情在会话中存储数据集

我的问题是:考虑到最大数量的问题是120,这些数据是否会严重影响我的页面的性能,如果是这样,请通过告诉另一种方式帮助我方法... THX。

+0

为什么您需要在会话中存储120个问题+选项+答案?为什么你只是不把值存储在数据库中,并在需要时检索它们?如果你有一些性能问题,这意味着你做错了什么,为了存储目的使用会话永远是一个坏主意。它意味着存储当前状态的手段。这不是数据存储!顺便说一句,'从数据库中检索一定数量的问题(问题的值将被定义)并将其存储在会话中维护的数据表中? – walther

回答

0

视图状态当然不是一个存储这种数据的好地方,因为数据集将被序列化成一个(非常长的)字符串并发送到每个请求的客户端。一般来说,我会尽可能地避免查看状态(在我看来,它有更多的缺点而不是优点)。

只要您使用进程内会话模式,在会话中存储数据集应该没问题。在这种情况下,会话数据被保存在内存中,这种方法的唯一缺点(正如我所看到的,没有涉及到您的任务),有时您可能会考虑释放当前不需要的内存。如果您使用SQL Server存储会话数据,那么我会选择其他存储作为序列化/反序列化数据集,在这种情况下可能会影响应用性能。

0

这取决于您要在应用程序上设置限制的位置。

将数据存储在内存中会将应用程序限制到一定数量的并发用户。

每次从数据库获取数据都会降低应用程序每秒可处理的请求数。

与任何优化一样,只有当您知道需求是什么时才应该进行优化,因此我建议您只从数据库获取数据,并在实际需要时添加缓存。