sql-server - 使用带有 TABLOCK 的 INSERT BULK 防止事务日志增长
问题描述
我正在编写一个从 Spark-Scala 应用程序写入 SQL Server 的进程。它为每个数据分区生成多个 INSERT BULK(如预期的那样),批量大小为 100K 记录。
当我正在监视事务日志时,我可以看到它已满,我希望 INSERT BULK 不会。
您能否建议我如何实现每批次的提交。
解决方案
当您的数据库恢复模式设置为完整时,批量插入将写入事务日志,并且事务日志将继续增长。你有两个选择:
在加载数据时将数据库恢复模式更改为批量记录,然后将其重置为完整
在每个批次加载(或每隔几个批次)后修改您的流程以备份事务日志
推荐阅读
- node.js - findByID 不是函数
- xcode - 无法使用 Xcode 10 在 Mojave 上安装 brew
- javascript - 三、bufferGeometry的颜色和位置属性使用不同的顶点,很难比较
- c# - 如何在 WebClient 类中使用 Socks5 代理?
- reactjs - 在 Redux 容器模式中。“连接”应该在组件或容器中吗?
- html - HTML/CSS:水平和垂直居中内容
- javascript - 当我关闭它时,如何让 node.js 进程保持打开状态
- java - 仅当每个循环都找不到匹配项时才运行代码?
- amazon-web-services - 不同子域的 AWS 负载均衡器路由
- python - 在 Python 3 中舍入到最接近的 0.25,没有银行家的舍入