BULK IMPORT多次使用相同的数据需要非常不同的时间。为什么?

时间:2017-05-19 10:10:01

标签: sql sql-server bcp

我正在测试BCP实用程序的速度。我在不同的实验中使用相同的数据库,表格,数据文件(1000万行),格式文件等。每次实验后,我都会删除表并创建新表(完全相同)。当BCP实用程序无法正常工作时,我的硬盘性能加载到1-5%(我使用任务管理器进行检查)。当它工作时,硬盘加载99%。

BUT。

我现在有6个实验。最好的是178秒,最差的是292秒!!!

我需要将BCP与其他方法进行比较,找出对速度的影响(例如索引,约束,恢复设置等)以及这种影响有多大。但由于相同实验之间存在如此巨大的差异,我现在无法做到。

为什么会发生这种情况,我能解决吗?

UPD:我将恢复模式更改为" full"来自"简单"并做了更多实验。现在最好的时间是173秒,最差的是435秒:)

1 个答案:

答案 0 :(得分:0)

也许你需要测试Nonlogged BULK INSERT

  1. 恢复模式设置为SELECT INTO/BULK INSERT
  2. 添加TABLOCK
  3. BULK INSERT TestDB
    FROM 'C:\TestDB.txt'
    WITH
    (
        FIELDTERMINATOR = '\t',
        ROWTERMINATOR = '\n',
        TABLOCK
    )