【发布时间】:2021-08-19 12:30:26
【问题描述】:
在一种情况下寻求帮助。 我有一个经常读取元数据表的 OLTP 应用程序(app1),该表只有 2k 条记录。 另一个应用程序(app2)需要在一天内刷新(删除并再次插入 2k 条记录)元数据表几次。
既然没有停机时间,我该如何刷新元数据表?
我能想到的一个选项是:
- 将“ACTIVE”列添加到元数据表(初始加载将 1 设为 Active)
- app1 在阅读时始终使用 Active=1
- app2:第一次使用 Active=0 插入新元数据
- app2:第二次删除活动=1
- app2:第三次更新所有行 Active=1
- app2:最终提交
我不太相信上面的选项,还有其他选择吗?
【问题讨论】:
-
什么是app3?如果只有一个应用程序更新,只要它在单个事务中完成所有更新,您实际上就没有问题,特别是因为表很小。
-
为什么不使用触发器来更新表?这将比您使用的方式更实时。
-
@Mat,app3 是拼写错误,它实际上是一个 app2。是的,只有 app2 会在单个事务中更新此表。我担心一天内对这张表应用几次删除。