我正在计划将2TB数据库实时迁移到分区表的过程。从广义上讲,该系统是一个文档存储,其中大部分空间分配给了50kb至500kb之间的LOB,其中很小的一部分位于500kb至1MB范围内。迁移的一部分将涉及从旧数据库到新数据库的BCPing数据。
BCP是首选方法,因为数据的当前/历史划分允许在最终切换之前分阶段(在较安静的时段)提取较旧的数据,从而将对实时系统的影响降至最低。数据量和存储的可用性排除了对分区方案进行原位重建的麻烦。
我怀疑由于BLOB内容的原因,尝试KILOBYTES_PER_BATCH而不是ROWS_PER_BATCH可能会带来一些性能提升。BCP文档中建议SQL可以基于该值优化操作。
我找不到关于这些优化的性质或从哪里开始测试的任何指导。在缺乏建议的情况下,我将尝试从4/8/16/32 / 64mb边界开始进行短期运行。
更改数据包大小可能会带来一些好处(BCP-一个参数,而不是服务器级别设置),但除非有人采用更规范的方法,否则我倾向于将此值提高到最大值65535。