Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 多次批量导入相同的数据需要非常不同的时间。为什么?_Sql_Sql Server_Bcp - Fatal编程技术网

Sql 多次批量导入相同的数据需要非常不同的时间。为什么?

Sql 多次批量导入相同的数据需要非常不同的时间。为什么?,sql,sql-server,bcp,Sql,Sql Server,Bcp,我正在测试BCP实用程序的速度。我在不同的实验中使用相同的数据库、表格、数据文件(1000万行)、格式文件等。每次实验结束后,我放下表格,创建一个新的表格(完全相同)。当BCP实用程序无法工作时,我的硬盘性能将加载到1-5%(我使用任务管理器进行检查)。当它工作时,硬盘的加载率为99% 但是 我现在做了6个实验。最好的是178秒,最差的是292秒 我需要将BCP与其他方法进行比较,找出对速度的影响(例如索引、约束、恢复设置等),以及这种影响有多大。但是我现在不能做,因为相同的实验之间有如此大的差

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

但是

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

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

为什么会发生这种情况,我能修复它吗


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

也许您需要测试未记录的大容量插入

  • 恢复模式设置为
    SELECT INTO/BULK INSERT
  • 添加
    TABLOCK
  • 批量插入TestDB
    来自“C:\TestDB.txt”
    具有
    (
    字段终止符='\t',
    行终止符='\n',
    小报
    )
    
    对于所有这些测试,我认为您正在确保源IO、目标IO和处理能力相似。。。因为主要是在目标IO中,目标表中索引的微小更改将提供不同的结果您试图查找的是BCP还是大容量插入?@KannanKandasamy我不想查找,我需要有自己的结果。我在写研究生论文这个问题是干什么的?@KannanKandasamy同一个方法给出随机结果时,我无法比较不同的方法