【发布时间】:2015-07-15 19:27:57
【问题描述】:
我在我们的代码库中的一个 sql 存储过程中遇到了一段代码,它在没有事务块的情况下使用分块。我看不出没有 tran 块的分块有什么好处?当我没有深入挖掘就得出结论时,我已经谦卑了几次,那么没有 tran 块的分块有什么优势呢?有吗?
伪代码类似于:
填充主临时表(ID、名称、UpdatedFlag)。这个标志栏 指示记录是否已更新。
开始 while 循环(只要 MainTable 中有一条记录 更新标志 = 0)
- 只选择给定的 chunkSize 到 ChunkSizeMain tempTable (ID, 名称)来自尚未标记为已更新的记录
- 开始 TRY 块
- 通过加入 ID 开始更新其他表 块大小主表。
- 在 MainTable 中更新 UpdatedFlag = 1。
- 结束尝试
- 开始捕捉 //一些动作结束捕捉
【问题讨论】:
标签: sql-server sql-server-2008 tsql transactions chunking