2011-04-06 105 views
0

使用某种NoSQL数据库有什么好处,而不仅仅是在HttpCache中保留一个大对象缓存并使用linq来查询对象?NoSQL vs Linq To Objects for asp.net mvc

我们有一个需要根据地理位置,用户偏好等向用户提供的5000种产品的列表。规范的产品数据存在于关系数据库中,我们不打算改变这种情况。我们有一个sproc返回给定客户的有效产品ID的大名单,但我们不希望为每个客户重新加载每个产品的开销。 (为什么在数据库服务器和Web服务器之间发送相同的产品描述?)

因此,我们只是从缓存中为产品ID的给定列表获取产品详细信息。

我们第一次尝试缓存产品导致了巨大的内存使用量,因为应用由于糟糕的查询设计和缓慢的垃圾收集而进行了多次ToList()调用。

我正在研究构建一个新的版本,并希望对NoSQL数据库是否提供任何真正的优势,而不仅仅是使用linq到对象。

回答

1

如果你的关系型数据库是SQL Server,您可以使用通知服务和存储使用带有EnableCaching="True"CacheDuration="Infinite"这种方法的优势SqlDataSource是,你会得到一个往返到数据库中的产品列表仅在产品列表被修改。

看看这个article,它解释了Notification Services是如何工作的。

1

在5000个对象HttpRuntime.Cache是一个很棒的NoSQL数据存储。