2011-04-06 65 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數據存儲。