从数据库查询还是从内存查询?哪个更快?

Gui*_*tos 4 c# performance singleton windows-services file-processing

我正在尝试提高用 C# 和 .NET 2.0 开发的、处理大量文件的 Windows 服务的性能。我想每秒处理更多文件。

在其过程中,对于每个文件,该服务都会执行数据库查询以检索系统的某些参数。

这些参数每年都会变化,我认为如果将这些参数作为单例加载并定期刷新该单例,我会获得一些性能。我不会对每个正在处理的文件进行数据库查询,而是从内存中获取参数。

完成该场景:我使用 Windows Server 2008 R2 64 位,SQL Server 2008 是数据库,C# 和 .NET 2.0,如前所述。

我的方法正确吗?你会怎么办?

谢谢!

Hen*_*man 6

这些参数每年都会改变

是的,请将它们缓存在内存中。特别是当它们很大或很复杂时。

您应该注意每年在正确的时间使它们失效一次,具体取决于其准确性。

简单地将它们缓存一个小时甚至几分钟可能是一个很好的折衷方案。