我希望使用C#驱动程序将数据从MongoDB传输到SQL Sever。 三个集合中的数据大小约为20,000,000。我正在使用3个线程 读取它和3个线程插入3个不同的SQL Server表。
在阅读了大约70,000,000份文件后,性能就会提升 更糟糕的是,速度大约是之前的十分之一,而网络 带宽下降。
如何防止性能下降?
答案 0 :(得分:0)
尝试在单个线程上按顺序迁移每个集合。操作将是IO绑定而不是CPU绑定,因此运行多线程将更有可能降低性能并增加数据库中的资源争用和上下文切换。
另请查看您的SQL Server数据库磁盘写入。可能是硬盘缓存正在被使用,但随着缓存被刷新到磁盘,写入速度变慢。