2011-05-09 80 views
0

我正在开发一个非实时系统,但最终用户计算机和数据库之间存在一个介入式独立服务器。这个想法是,每当用户发送内容时,数据库服务器不会负担,数据库机器上的Windows服务会定期扫描中继服务器,并更新数据库,删除中继盒上的临时文件。用于读取文件并将内容插入到数据库中的性能

在几千台计算机上安装的客户端软件几乎同时发送信息的情况。以下情况适用:

  • 上述情况不会经常发生,但可能每隔一周发生一次。
  • 对于每台机器,24个字节的数据(磁盘上的4k)写在中继服务器上,然后我们希望使用中继服务器来拾取和更新数据库。因此,尽管目前用户群只有几千人,但他们可能会花费数百万加班。

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

我认为如果继电器盒被击穿,总会出现瓶颈,但是有更好的方法来提高性能并在合理的时间(一天两次)获得数据吗?

问候, F.

回答

0

我想你可能会认为,为避免锤击磁盘只有一个线程读取文件,然后把手拿开处理多个线程写入到数据库,并返回到磁盘线程提交后删除文件。数据库线程的数量可以从“app.config中修改”来找到硬件配置的最佳值。

只是我2美分让你思考。

相关问题