1

让我们举一个表适配器(类型化数据集)的例子

我在会话中存储数据集。但我不知道什么对表适配器更好。

一般来说,与存储和获取会话相比,创建对象的性能会很差吗?

4

4 回答 4

2

那总是取决于你的要求。

如果数据集中的数据较少,并且您非常频繁地调用数据库以一次又一次地获取相同的数据,则最好将其存储在会话中,但是如果所有用户的数据都相同,那么您应该使用缓存,因为它更快比会话。

但是,如果数据集中的数据很大,则最好调用数据库,因为存储数据会降低应用程序的速度,即性能可能会严重下降。

注意:这始终取决于数据大小以及您从数据库中查询数据的频率。

于 2012-10-10T06:34:10.987 回答
2

这两种选择使用不同的资源。

创建对象的新实例需要时间。在会话中存储实例会使用内存。

如果您每次需要一个新实例时都创建一个新实例,那么它只会在您使用它的短时间内占用内存。如果你把它存储在会话中,它会一直占用内存,如果你不将它从会话中移除,它甚至会在用户离开后占用一段时间的内存。

如果您正在考虑在将表适配器保持在会话中的同时保持它与数据库的连接,那也会用完与数据库的连接,这是一种更加有限的资源。这将严重限制该网站可以处理的用户数量。

通常,您应该只将内容存储在实际具有状态的会话中,即确实具有您需要保留的数据的内容。大多数对象的创建时间都很短,以至于为了避免再次创建它们而保留它们是没有意义的。

于 2012-10-10T06:36:22.293 回答
2

我不确定,为什么要将它存储在 session 中,但请记住 Session 是 Web 开发中最昂贵的资源。

于 2012-10-10T06:26:56.357 回答
1

这一切都取决于您的要求,您想要做什么以及您拥有多少数据。

根据我的说法,会话不是存储数据集的好选择,因为一旦它占用了内存将不可用。并且会话有一些限制,例如如果您的会话已过期,那么它可能会抛出 null 错误,您需要刷新它不时。

更好的是当您需要具有大数据的数据集来调用数据库时,因为存储数据会减慢您的应用程序,即性能可能会严重下降。您可以使用 sql server 中的索引选项来快速返回数据。

于 2012-10-10T06:45:53.110 回答