我们很高兴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