我们有一个应用程序可以获取实时数据并将其插入数据库。它每天在线 4.5 小时。我们在 17 个表中逐秒插入数据。用户可以随时查询任意表的最新秒数据和历史记录...
处理提要和插入是使用 C# 控制台应用程序完成的...
处理用户请求是通过 WCF 服务完成的......
我们发现插入是我们的瓶颈;大部分时间都在那里。我们投入了大量时间尝试微调表格和不雅点,但结果并不令人满意
假设我们有足够的内存,将数据插入内存而不是数据库的最佳实践是什么。目前我们正在使用每秒更新和插入的数据表 我们的一位同事建议在 feed-handler 和 WCF user-requests-handler 之间使用另一个 WCF 服务而不是数据库。WCF 中间层应该是基于 TCP 的,它将数据保存在自己的内存中。有人可能会说,提要处理程序可能会处理用户请求,而不是在 2 个进程之间有一个中间层,但我们想要分开,所以如果提要处理程序崩溃,我们仍然希望能够为用户提供当前记录
我们的时间是有限的,我们想在短时间内把一切都移到记忆中。在 2 个进程中间有一个 WCF 是一件坏事吗?我知道请求会增加一些开销,但是所有这 3 个进程(feed-handler、内存数据库(WCF)、用户请求处理程序(WCF)都将在同一台机器上,带宽不会那么多的一个问题。
请协助!