首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在.Net中缓存大量数据可以接受吗?

在.Net中缓存大量数据可以接受吗?
EN

Stack Overflow用户
提问于 2015-11-29 06:52:19
回答 1查看 2.9K关注 0票数 1

我正在设计一个在Server中有400多个表的会计应用程序。

这些表中约有10%是操作表,其他表用于解码和引用信息。

例如,Invoice表(主表和详细信息)使用大约10个表来解码诸如买方、商品、营销人员和.等信息。

我想知道在asp.net缓存中缓存解码表是否可以接受,而不是从Server查询它们(我知道对缓存项的更改也应该提交到Server上)。并使用缓存项进行解码?

我认为它比常规应用要快得多。

也许几年后它们(缓存表)加在一起大约是500 MB,因为它们不经常更改。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-29 07:37:39

如果您有RAM,那么使用500 MB就可以了。

但是,除非现在出现性能问题,否则缓存只会导致问题。不要修复您没有遇到的问题,设计是为了性能,并且只有在遇到问题时才进行优化--因为否则优化会导致更多的问题得到解决。

因此,我建议您通常最好确保查询是优化的,结构良好,表上有正确的索引,并且发出最少数量的查询。

尽管500 it不是很多需要缓存的数据,但恕我直言,通常SQL Server在缓存方面做得比您能做得更好--前提是您正确地使用它。

使用缓存总是会提高性能,而代价是更高的实现复杂性。

对于从不更改的静态数据,缓存是有用的;但是它仍然需要在线程之间加载和共享,这本身就可能带来挑战。

对于很少改变的数据,它变得更加复杂,仅仅是因为它可能已经改变了。如果单个应用程序(进程)是缓存的唯一更新程序,那么它就不那么困难了,但仍然不是一个简单的任务。

我花了几个月的时间来优化一个离线批处理系统(在这里,代码在12个小时内完全控制了数据库)。优化的一部分是使用各种缓存和数据重新预测。所有的缓存都是只读的。在执行过程中,内存使用量在10 is左右,数据库在170 is左右,记录为6000万条。

即使使用缓存,也对底层模式进行了相当大的更改,以提高效率。只读缓存是为了消除处理过程中的读取;允许多线程处理并提高插入性能。

处理速度已从20个月前每秒处理的6项下降到每秒大约6 000项(昨天),但确实需要进行这种优化,因为要处理的项目数量在同一时期从10万项增加到800万项。

如果你没有必要,那就不要优化。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33980239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档