我們很高興ASP.NET MVC框架和SQL Server的用戶,目前使用的是LINQ to SQL。它滿足了我們的需求,面向消費者的應用程序每月約有140萬用戶和2百萬活躍用戶。在生產MVC/SQL應用程序中記錄大量操作
我們期待已久的日誌開始記錄全部用戶操作(文章瀏覽,我們網站上的搜索等),我們正在努力確定正確的架構。
我們希望歸檔系統成爲自己的實體,而不是存儲生產文章和搜索引擎的主要SQL集羣的一部分。我們希望它是它自己的SQL集羣,最初只有一個盒子。
爲了簡化這個問題,我們假設我們只是想記錄這些月數百萬用戶進入我們網站的搜索條件,我們希望以儘可能少的週期密集的方式進行。
我的問題: (1)是否有異步方式將搜索項轉儲到遠程框? LINQ是否支持異步? (2)你會建議在RAM緩存中建立一個說1000(userId,searchTerm,date)日誌項的緩存,然後每隔一段時間將這些緩存刷新到數據庫?我認爲這種方法會減少打開/關閉連接。
或者我在想這個完全錯誤?我們希望在易於實施和穩健性之間取得平衡。
此線程可能有幾個好爲你解決, http://stackoverflow.com/questions/752456/asynchronous-logging-to-a-database-net – 2011-12-31 22:56:08