读取文件和将内容插入数据库的性能

本文关键字:插入 数据库 性能 文件 读取 | 更新日期: 2023-09-27 17:55:57

我正在开发一个不是实时的系统,但在最终用户机器和数据库之间有一个干预的独立服务器。这个想法是,数据库计算机上的 Windows 服务不会在每次用户发送内容时都给数据库服务器带来负担,而是定期扫描中继服务器并更新数据库,删除中继盒上的临时文件。

有一种情况是,安装在数千台计算机上的客户端软件几乎同时发送信息。以下情况成立:

  • 上述情况不会经常发生,但可能每隔一周发生一次。
  • 对于每台机器,中继服务器上写入 24 字节的数据(磁盘上为 4k),然后我们要拿起并更新数据库。因此,尽管用户群目前只有几千人也没关系,但他们可能会达到数百万加班。

我正在考虑一个批处理操作,一次只拾取大约 15,000 - 20,000 个文件,并且随时运行(可从 app.config 修改)。问题是,如果用户群增长到几百万,则需要几天才能完成。是的,它不一定是实时信息,但等待数天让所有数据到达数据库也不理想。

我认为如果中继盒被锤击,总会有瓶颈,但是有没有更好的方法来提高性能并在合理的时间(一天,两个顶部)获得数据?

问候F.

读取文件和将内容插入数据库的性能

我想您可能会考虑,为了避免锤击磁盘,只有一个线程读取文件,然后将处理交给多个线程以写入数据库,并在提交后返回到磁盘线程以删除文件。 数据库线程的数量可以"从 app.config 修改",以找到硬件配置的最佳值。

只是我的2美分让你思考。