我的问题与这个问题相同- 但需要补充一点。我的问题是我的网络应用程序的用户被允许创建记录的新版本。记录的每个新版本都会在 50 个其他相关表中创建相应的“新版本”,以记录对该特定版本的单独更改。这种包含大约 50 个表的新版本的创建在事务中运行(以在发生错误时回滚所有更改)。很多时候,这个过程很慢,这是可以理解的,因为“冗长的事务”涉及太多的表“插入”。
我正在寻找更好的解决方案/设计来实现这样的场景。
- 有没有更好的方法来维护同一记录的“版本”,特别是当它在多个表中创建太多重复项时
- 我觉得设计本身并不好,因为“每一行版本”都插入了太多记录,但至少想解决眼前的问题,即“冗长的事务”——这有时会导致延迟。可能没有出路,但仍然想问 - 如果我不将“版本控制”放在事务中,是否有更好的方法在发生错误时回滚(因为事务似乎阻止了其他 OLTP查询 - 由于在所有主表上插入新版本)
版本控制查询现在运行大约 10 秒,但有时会变得更糟。任何想法表示赞赏