首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不影响前端的情况下更新数据库的最佳方法

在不影响前端的情况下更新数据库的最佳方法
EN

Stack Overflow用户
提问于 2013-05-25 14:12:15
回答 1查看 100关注 0票数 0

我有几个表,这些表中的数据将从另一个Live data表中填充(使用OTA- Open Test Architecture从活动表中拉取数据)。现在,我必须定期(一天3到4次)更新表中的数据。

现在我的问题是,做这件事的最佳方法是什么?如果我必须更新我经常使用的表,我的计划是删除当前数据并从Live tables更新它,但是当有人在更新数据时访问前端时,他们要么没有结果,要么得到错误的结果。那么,我们如何才能做到这一点而不影响前端,同时仍然更新表中的数据?

我使用的是Java/JSP/Hibernate/Scriptom/Groovy和Oracle DB。

附言:我对所有这些东西都是新手,所以如果这不是正确的方法,请纠正我。访问Live DB对我来说不是一个选择。我们将不会被授予访问动态数据表的权限。如果我有拉数据使用OTA和显示直接在我的前端,它将真的很慢。

EN

回答 1

Stack Overflow用户

发布于 2013-05-27 03:11:26

所有Oracle事务至少具有READ COMMITTED isolation level。这意味着,在提交之前,事务的影响对其他事务是不可见的。因此,只需将所有必要的操作封装在一个单个事务中,其他事务在您提交之前是看不到结果的(此时结果不再是部分的)。

除此之外,写入器永远不会阻塞读取器,因此其他客户端将能够继续读取旧版本的数据,而您的事务仍在生成新数据。

顺便说一句,Oracle还支持SERIALIZABLE隔离级别,这可能与您的需求更相关-它将允许您在读取实时表时获得数据库的“及时快照”。

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

https://stackoverflow.com/questions/16746976

复制
相关文章

相似问题

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