我有 100 多个文件要导入 sql 服务器,其中大部分是 500 MB。我想利用 SQL Server 的并行导入实用程序并阅读了许多网页,例如以下网页:
如何在 30 分钟内加载 1 TB 数据
https://technet.microsoft.com/en-us/library/dd537533(v=sql.100).aspx
使用表级锁定并行导入数据
https://technet.microsoft.com/en-us/library/ms186341(v=sql.105).aspx
以及stackoverflow中的答案
并行插入单个表的最快方法
但是,他们都没有给出一个简单的代码示例。我知道如何使用批量插入/bcp,但我不知道从哪里开始并行导入?有人可以帮我吗?
我的系统是 Windows,我使用的是 SQL server 2016。源数据文件是 txt 格式。
在此先感谢您的帮助!
杰森
借用我的旧答案
以下是一些改进 BULK INSERT 操作的好方法:
最大并行度应该在服务器上配置而不是默认值。您可以参考我的回答,了解它是如何配置的。
如果您使用的是 SQL Server 2014 及更高版本,
SELECT ... INTO
则为并行。此外,您应该监视服务器上的等待统计信息,尤其是 SOS_SCHEDULER_YIELD,这会导致具有多个 CPU 运行并发批量加载操作并竞争相同 CPU 周期的服务器上的调度程序争用。
另请参阅: