Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net-mvc/SQL server中,存储昂贵的计算数据并像stackoverflow一样快速提供数据的最佳方式是什么_C#_Sql Server_Asp.net Mvc_Performance_Metrics - Fatal编程技术网

C# 在asp.net-mvc/SQL server中,存储昂贵的计算数据并像stackoverflow一样快速提供数据的最佳方式是什么

C# 在asp.net-mvc/SQL server中,存储昂贵的计算数据并像stackoverflow一样快速提供数据的最佳方式是什么,c#,sql-server,asp.net-mvc,performance,metrics,C#,Sql Server,Asp.net Mvc,Performance,Metrics,我对stackoverflow有一个类似的要求,即在我的asp.net-mvc站点的一个页面上显示一些计算成本非常高的度量。Stackoverflow在页面上有很多指标(如用户接受率等),这显然不是在页面请求上动态计算的,因为它太慢了 在没有性能损失的情况下快速提供计算数据的推荐做法是什么(假设我们可以接受这些数据可能有点过时) 这是存储在某个缓存层还是存储在某个其他“结果”数据库表中,因此每天都有一个作业来计算这些数据并存储结果,以便直接进行查询 假设我很乐意处理将此数据作为快照的延迟问题,那

我对stackoverflow有一个类似的要求,即在我的asp.net-mvc站点的一个页面上显示一些计算成本非常高的度量。Stackoverflow在页面上有很多指标(如用户接受率等),这显然不是在页面请求上动态计算的,因为它太慢了

在没有性能损失的情况下快速提供计算数据的推荐做法是什么(假设我们可以接受这些数据可能有点过时)

这是存储在某个缓存层还是存储在某个其他“结果”数据库表中,因此每天都有一个作业来计算这些数据并存储结果,以便直接进行查询


假设我很乐意处理将此数据作为快照的延迟问题,那么针对此类问题的最佳解决方案是什么。

是的,答案是缓存,您是如何(可以)实现的如果您使用NHibernate添加缓存非常简单,那么复杂的部分是您的配置的一部分,取决于您刚才添加的查询。Cacheable,它为您管理它。缓存还取决于环境的类型,如果您使用的是单个工作者、web场或web花园,则必须构建一个缓存层来适应您r场景

虽然这是一种比较新的技术,但构建系统以实现类似功能的一种非常好的方法是使用,CQR经常提到这一点。

他们可能依赖Redis数据存储进行此类计算和缓存。MarcGravel的这一点可能会有所帮助

(我正试图找到一个很好的方法来回答这个问题,但这并不是“你所需要的每一种方法”…)在我下面的观点之后,你问“在没有性能损失的情况下,快速提供计算数据的推荐做法是什么(假设我们可以接受这些数据可能有点过时)”。这是一个教科书式的例子,说明了缓存的价值。没有关于数据大小和容量、数据更改频率以及“过时”程度的进一步信息你可以容忍,很难提出具体的建议。我认为你没有回答这个问题。它没有说明何时会进行这些类型的计算。通过说缓存,我假设第一次有人请求它时,它会被计算,然后后续请求会进入缓存。我我在这里寻找双方。@OOO-我不理解您对BlackTigerX的反应。如果您想要计算成本高昂的数据,您希望不经常计算数据,并将其存储在对站点渲染引擎有用的方式和位置。这是缓存。您可以选择使用作为数据访问一部分提供的缓存或ORM层。您可以选择将数据缓存在web服务器上的text/XML/binary/which文件中。您可以选择实现这些缓存值的内存中数据库。无论您以何种方式查看,都将使用缓存数据。感谢您对我的博客文章的引用!人们可能还希望查看和获取其他资源。