Vir*_*tel 9 sql-server insert select bulk-insert
我只是想知道 SQL 语句INSERT INTO TABLE1 SELECT * FROM TABLE2,会像批量插入一样工作吗?
如果没有,有没有办法在插入记录时排除索引。进程在一次执行中插入 1.5 亿条数据。
我们计划创建阶段表(不会有任何索引Table1),然后将其从阶段表转移到目标表(会有索引Table2)
我们不是在从过程中创建平面文件的情况。
但是当我们将数据从Table1(未编入索引)传输到Table2(编入索引)时,我们正在寻找可以加快处理速度的方法。
任何方式使用BulkInsert自Table1到Table2?
Kin*_*hah 14
您最好的选择是使用SSIS或BULK INSERT。使用它们时,您可以进行各种性能改进,数据加载性能指南 中详细记录了这些改进。
在SSIS级别,您可以查看以下内容以加快数据读取和数据加载:
有关更多详细信息,请参阅加快 SSIS 批量插入到 SQL Server的速度。
以下是一些改进 BULK INSERT 操作的好方法:
最大并行度应该在服务器上配置而不是默认值。您可以在此处参考我关于如何配置它的回答。
如果您使用的是 SQL Server 2014,则SELECT ... INTO是并行的。
此外,您应该监控服务器上的等待统计信息,尤其是 SOS_SCHEDULER_YIELD,这会导致具有多个 CPU 运行并发批量加载操作并竞争相同 CPU 周期的服务器上的调度程序争用。
另请参阅: