首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨多个模式使用时间戳或DBMS_FLASHBACK.ENABLE_AT_TIME

跨多个模式使用时间戳或DBMS_FLASHBACK.ENABLE_AT_TIME
EN

Database Administration用户
提问于 2019-03-15 16:28:18
回答 1查看 154关注 0票数 0

我们需要在一定时间(例如从模式1 )读取数据(例如T1),用该数据填充模式2中的一些暂存表。然后根据模式2暂存表中的当前数据从模式1的其他表(即模式1和模式2在随后的查询中连接)中的当前数据读取模式1的数据。

是否有一种无需在存储过程中的每个( AS OF )查询中使用500+来实现这一点的方法,无论模式1表出现在哪里?另外,由于大量的插入到模式2中,存储过程中也有很多提交。

业务需要在Schema 1上的所有查询中保持读取一致性,以便在存储过程执行开始时做到这一点。模式1中的所有表都启用了闪回查询。我们面临的问题是必须在一定时间内读取模式1的表,同时从模式2中的表读取当前数据。

EN

回答 1

Database Administration用户

发布于 2019-07-05 20:25:25

是的你可以使用dbms_flashback.enable_at_time。这将改变当前会话对整个数据库(所有模式)的看法。

但是请记住,您必须在不同的会话中编写更改,因此不能使用这些语句中的insert。

目前,康纳在AskTom的名声上有一段视频:https://youtu.be/lmrWmH1vMPc

另一种选择是,如果希望具有一致但当前的视图,则可以将事务隔离设置为只读,并开始一个新事务以获得跨多个查询的读取一致性。

如果您想将读和写混合在一起,那么就需要使用“of`”作为read子查询。通过自动生成这些语句,您可以很容易地解决这个问题(更改许多语句)。

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

https://dba.stackexchange.com/questions/232272

复制
相关文章

相似问题

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