巨大 SQL 服务器批量插入的最佳策略 - 高频或低频

Best strategy for gigantic SQL Server bulk Insert - high-frequency or low-frequency

批量加载 N 批 1 MB 数据(高频率)还是批量加载 1 批 X MB 数据(低频率)更好?

我的问题是解析和处理数据也需要时间,所以并行解析、处理和持久化一个巨大的数据集似乎不是最好的方法,因为它会导致高频批量插入。

相反,解析和处理应该累积成 X 大小的大批次,然后调度该批次的(并行的)批量插入?

这是正确的吗?如果是这样,X 的推荐大小是多少?

批处理的最佳大小取决于您的硬件、您正在进行的处理以及现有数据量。只有你自己知道。

智能算法会尝试插入几批大小 N 并测量性能,然后几批大小 2*N,然后几批大小 4*N,等等。直到性能开始下降并自动确定最佳批量大小。

随着数据库的增长,批处理的最佳大小也会发生变化,因此算法应随时间进行自我调整。

如果这是一次性任务,请手动进行少量不同批量大小的测试。