Sql 解释和微调BATCHSIZE参数?

Sql 解释和微调BATCHSIZE参数?,sql,sql-server,tsql,sql-server-2008,Sql,Sql Server,Tsql,Sql Server 2008,因此,我正在玩批量插入语句,我开始喜欢它了。使用BULK INSERT时,SQL Server导入/导出向导所说的7个小时只花了1-3个小时。然而,我观察到的是,完成时间在很大程度上取决于BATCHSIZE规范 以下是我观察到的包含5000万条记录的5.7 GB文件的次数: BATCHSIZE = 50000, Time Taken: 17.30 mins BATCHSIZE = 10000, Time Taken: 14:00 mins BATCHSIZE = 5000 , Time T

因此,我正在玩
批量插入
语句,我开始喜欢它了。使用
BULK INSERT
时,SQL Server导入/导出向导所说的7个小时只花了1-3个小时。然而,我观察到的是,完成时间在很大程度上取决于
BATCHSIZE
规范

以下是我观察到的包含5000万条记录的5.7 GB文件的次数:

BATCHSIZE = 50000,  Time Taken: 17.30 mins
BATCHSIZE = 10000,  Time Taken: 14:00 mins
BATCHSIZE = 5000 ,  Time Taken: 15:00 mins
这只会让我好奇:是否有可能为
BATCHSIZE
确定一个好的数字?如果有,它取决于哪些因素,并且可以在不必运行几十次相同查询的情况下对其进行近似计算


我的下一次运行将是一个70 GB的文件,其中包含7.8亿条记录。如有任何建议,将不胜感激?完成后,我将报告结果。

有一些信息,看起来批量应该尽可能大;文档说明通常情况下,批量越大,性能越好,但您根本没有体验到这一点。似乎10k是一个很好的批量大小,但我会从其他角度来优化批量插入,例如将数据库置于简单模式或在导入竞赛期间指定tablock提示。

+1谢谢!我没有想到他们中的任何一个。希望它能显示一些性能改进:)