我正在尝试将 MS Access ( .mdb
) 文件中的数据插入 SQL Server 2014 标准版。每个文件包含 100 个表。我有超过三千个文件要加载到 SQL Server 中。在 100 个表中,一些被加载到一个公用表中,其余的被加载到 SQL Server 中的单个表中。
目前它正在使用 Microsoft Jet.4.0 通过前端循环遍历文件列表,然后遍历表列表。该过程需要三到四天才能完成,效率不够。
我想最大限度地利用服务器资源,尽量减少运行时间。我的服务器在主动-被动集群环境中有 128GB RAM 和 32 个核心处理器。如何并行或以任何有效的方法插入所有文件?
我试过的:
我编写了一个多线程程序来向 SQL Server 发送插入请求,我发现它同时向 SQL Server 发送多个请求,但 SQL Server 正在串行处理这些请求。结果,性能没有提高。
我尝试了 SQL Server 代理作业,它证明是并行的,但是对我来说似乎很难控制。
如果我们计算一下,加载一个文件需要 2 分钟,总共有 3000 个文件。所以,六千分钟就是 4.16 天。平均文件大小约为 100 mb。即使在过去几个月的每一天中搜索并测试了我发现的每种方法后,我也没有发现任何可行的方法。
有没有合适的方法来有效地插入数据?
最佳答案
我将添加一条无益的评论——我并不是要刻薄——只是来自一位年长开发人员的一点历史观点。这是 1980 年代经典的噩梦设计……以及为什么网络的发明如此繁荣。显然,真正的解决方案是使用通用 SQL 后端服务器迁移到 Web 应用程序,而不是尝试将这 1000 个数据集作为批处理来收集……。话虽如此 - 我确实明白有些领域的基础设施不适合网络。
关于sql - 将数据并行插入 SQL Server 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53993315/