我的问题与this question相同 - 但有一点要添加到它。我的问题是,我的网络应用程序的用户可以创建新的记录版本。记录的每个新版本都会在50个其他相关表中创建相应的“新版本”,以记录对该特定版本的个别更改。创建一个包含大约50个表的新版本在事务中运行(以在发生错误时回滚所有更改)。很多次这个过程都很慢,可以理解的是由于涉及太多“表格插入”的“冗长事务”。ASP.NET OLTP应用程序 - 创建记录的新版本
我正在寻找更好的解决方案/设计来实现这样的场景。
- 有没有更好的方法相同的记录的保持“版本”,特别是当它创建多个表太多重复
- 我不觉得设计本身是好的太多的记录越来越插入“每行版本”,但至少要解决直接的问题,“冗长的交易” - 这会导致有时延迟。可能还没有出路,但仍想问一下 - 如果我不将“版本控制”放入事务中,是否有更好的方法可以在发生错误时进行回滚(因为事务似乎阻止了其他OLTP查询 - 由于在所有主表上插入新版本)
版本控制查询现在运行约10秒,但有时会变得更糟。任何想法将不胜感激
谢谢保罗。但我的问题就是这样 - 一般用例行为是这样的,只要允许用户创建记录的“新版本”,他就会去更新与该特定版本相关的信息。因此,新版本应该存在于所有这些相关表格中供用户更新信息。它必须实时发生。 – Lalman 2012-03-21 09:34:41