【问题标题】:BULK IMPORT the same data multiple times require very different time. Why?多次批量导入相同的数据需要非常不同的时间。为什么?
【发布时间】:2017-10-19 10:03:54
【问题描述】:

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

但是。

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

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

为什么会发生,我可以解决它吗?

UPD:我将恢复模式从“简单”更改为“完全”并进行了更多实验。现在最好的时间是 173 秒,最差的是 435 秒 :)

【问题讨论】:

  • 对于所有这些测试,我认为您正在确保源 IO、目标 IO 和处理能力相似......因为主要在目标 IO 中,目标表中 INDEX 的微小变化将提供不同的结果跨度>
  • 您要查找 BCP 与 BULK 插入什么?
  • @KannanKandasamy 我不是想找到我需要有自己的结果。我正在写研究生作品
  • 这个问题是为了什么?
  • @KannanKandasamy 当相同的方法给出随机结果时,我无法比较不同的方法

标签: sql sql-server bcp


【解决方案1】:

也许你需要测试 Nonlogged BULK INSERT

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    相关资源
    最近更新 更多