首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果oracle数据泵实用程序可以刷新数据,为什么我们需要Oracle中的物化视图?

如果oracle数据泵实用程序可以刷新数据,为什么我们需要Oracle中的物化视图?
EN

Stack Overflow用户
提问于 2014-09-15 12:44:11
回答 1查看 1.5K关注 0票数 3

我们在不同的oracle服务器上有两个模式。我们计划使用一个模式作为事务数据库,并使用其他模式进行报告。

由于事务数据库是任何用户生成的数据的入口点,所以我们希望定期将这些数据复制/发送到报告模式。我们考虑在事务数据库中创建物化视图日志,在报表数据库中创建物化视图。然后,我们计划使用Db链接进行计划的快速刷新。

但是,一个DBA建议我们使用数据泵,它将导出和导入整个模式。刷新需要每天进行一次。在性能和网络使用方面,哪一种是最佳解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-15 13:09:40

摘要

这两种方法各有优缺点。没有一般的答案。你得做个基准。

详细信息

数据库链接上的物化视图

你有两种可能让这件事成功。

第一种可能是使用快速刷新功能。使用此功能,Oracle使用有效的增量机制更新每个更改的物化视图。当每天只更改表的一小部分时,这可以节省大量的数据卷。你的数据总是新鲜的。但是,这种机制并不适用于所有类型的表(例如,某些联接和LOB列的问题)。当一个数据库关闭时,物化视图将不同步,必须重新构建。最后:增量更改的簿记给源表上的所有写操作带来了额外的压力。

第二种可能是使用完全刷新,例如物化视图组(DBMS_REFRESH包)。这总是会触发一个完整的刷新,但这不会对簿记的保存造成额外的写压力。

在这两种情况下,这两个数据库现在紧密耦合:对一个数据库的更改也将触发对另一个数据库的更改。而且您不能随意移动数据库:它们总是需要快速连接,延迟低,并且不需要干扰防火墙。从长远来看,数据库必须同时打开,否则您可能会失去物化视图。

ETL工具

作为替代,您可以始终使用某种ETL工具,从一个数据库中提取数据,根据某些给定的规则转换数据,并将结果加载到另一个数据库中。您可以使用完成此任务,也可以使用任何第三方工具。当源或目标的数据库架构必须更改时,ETL工具可以缓存数据、使用任何类型的WAN连接传输数据并对其进行转换。通常,ETL工具还提供某种增量机制。

使用ETL工具,您会更加灵活,但您依赖于数据库之外的组件,必须对其进行维护。

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

https://stackoverflow.com/questions/25848436

复制
相关文章

相似问题

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