首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在tsql中使用无事务块的分块有什么好处?

在tsql中使用无事务块的分块有什么好处?
EN

Stack Overflow用户
提问于 2015-07-15 19:27:57
回答 1查看 326关注 0票数 0

我在我们的代码库中的sql存储proc中遇到了一段代码,它使用的是没有事务块的分块。我不知道没有tran块块会有多大好处?当我在没有挖掘更多信息的情况下草草下结论的时候,我已经谦卑了几次,那么没有tran块的分块有什么好处呢?有吗?

伪码类似于:

  • 填充主试探表(ID、名称、UpdatedFlag)。此标志列指示记录是否已更新。
  • 启动with循环(只要MainTable中有UpdatedFlag =0的记录,就可以执行)
  • 仅从未被标记为已更新的记录中选择给定的chunkSize到ChunkSizeMain tempTable (ID,Name)
  • 开始试块
  • 通过连接ChunkSizeMainTable的ID开始更新其他表。
  • 在UpdatedFlag中更新MainTable =1。
  • 结束尝试
  • 开始捕获//某些动作结束捕获
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-15 20:06:22

无论事务旁边是否有BEGIN TRAN,Server中的每个更新查询都在事务中运行。(自动提交事务

当数据库处于简单恢复模式时,通常使用“中华”来阻止需要增大大小的事务日志。影响100万行的单个UPDATE语句需要将所有这些记录到活动日志中。将日志划分为批处理可以使早期提交的批处理中的日志被截断,并被以后的批处理重用。

还可以通过减少每次操作的时间长度和/或通过一次只更新几千行来降低锁升级的风险来减少对并发查询的影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31439369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档