我的网站经常使用一些表格。例如,最大的一个是保存大量静态数据的位置表。因此,无论何时用户访问我的网站,他们都会在这些位置进行搜索。它拥有大约150万行。我使用内存分析器调整了这个表的大小,它在内存中接近500mb。最后我还有一些静态表,我需要非常快速地访问它们,它们是静态的。最后,我的内存转储内存使用量达到1.5 GB。这对我来说不是问题,因为我有一个功能强大的服务器,有很多内存可用。 但是当我提出这个问题时,高级开发人员和架构师告诉我,我应该审查我的项目,因为一个过程不应该占用那么多内存。但我需要快速访问,我不想每次都查询我的数据库。我需要在1秒内回复。这就是为什么记忆对我而言的方式。还有更好的建议吗?
我正在使用asp.net和ms SQL 2008.目前Framework 4.0但很快将是4.5。我的网络服务器上的IIS 7.5。
感谢您的帮助。 感谢。
答案 0 :(得分:1)
这个过程绝对不应该保留这个记忆本身。 http服务器可能希望让进程并行运行几千次,而且你会遇到麻烦。现在不表示数据不应该在内存中。所有Google数据大多数时间都在内存中。你只需要小心加载它们。
答案 1 :(得分:0)
在生产环境中不建议保留大量静态数据。正如我在您的场景中看到的那样,您的数据集可以规范化并管理最小数量的初始数据集。
其他方式是使用类似构建器的设计模式来构建仅按需需要的数据集。
通过采用这种方法,您可以避免在内存中保留不必要的数据集。并根据需要加载您想要的内容。建造者的基本思想可以在[1]上找到。
[1] .http://www.oodesign.com/builder-pattern.html