首页 文章

'Rows per batch'是SSIS OLE DB目标有助于减少锁定吗?

提问于
浏览 1579
0

OLE DB目标中有一个名为“每批行数”的选项,在指定时,会在批处理中提取一定数量的行,否则,在一个批处理中提取源中的所有行 .

问题:如果我的源和/或目标服务器都是高度OLTP数据库,则在此参数上设置一个较小的数字(例如,10k或50k)有助于减少锁定升级的机会,这样加载过程可以对任何一个产生最小的影响 . 数据库?

2 回答

  • 1

    一般来说答案是:是的 . 它还取决于行的处理速度和每批的开销 . 如果批处理中包含所有行的事务需要很长时间,请考虑拆分 . 但是,将它分成太小的批次也会产生性能问题 .

    最好的方法是测试和找到甜点 .

  • 0

    “每批行数”实际上更多用于调整数据流 . 通过计算行的最大宽度(以字节为单位),然后除以默认缓冲区大小(默认值为10MB),您将获得可以在一个“批处理”中插入的行数,而不会将数据溢出到tempdb或您的缓冲磁盘(取决于您为临时缓冲区设置的特定位置) . 在将数据完全保留在内存中而不需要溢出到磁盘的同时,您将尽可能快地保持数据传输 .

    OLE DB目标中的“表锁定”选项告诉服务器锁定表 .

相关问题