同义词或查看 dblink
Posted
技术标签:
【中文标题】同义词或查看 dblink【英文标题】:Synonym or view over dblink 【发布时间】:2014-03-05 13:36:03 【问题描述】:我们正在用 PL/SQL 编写一些接口例程,以使用另一个 oracle 数据库作为主机在多个 oracle 数据库之间传输数据。 (即人力资源 -> 主持人 -> 财务)
传输是通过 db_links 进行的 本质上
insert into schema.tablname@dblink1 select * from schema.tablename@dblink2;
(它比具有多个表和转换等更复杂。但这是一般的想法)
我们在这里一直在讨论的是以下哪个应该做
-
在输出代码中到处引用“
schema.tablename@dblink
”
创建同义词(公共或私有)“create synonym tablename for schema.tablename@dblink
”
在对象“create view tablename as select * from schema.tablename@dblink
”上创建视图
还有其他选择吗? 有没有天生比其他人更好的?
注意:dblink 名称在每个级别 dev/test/prod 中都是标准化的 这样 dblink 'server1' 会转到开发主机上的开发服务器和测试主机上的测试服务器等。
任何表名都不应该存在于多个服务器上
【问题讨论】:
【参考方案1】:通过为您的远程对象创建同义词,位置透明度是最简单的设置。这比在每个 SQL 中都有远程地址更容易维护。您将如何对其他远程数据库中的内容进行快速测试?只需重新创建相关的数据库链接即可完成此操作。
另一种选择是创建快照,即本地数据库中远程表的物化视图,但这也需要数据库链接。它会以额外空间为代价获得良好的性能。
【讨论】:
我不认为我们现在担心性能..我们不认为这是一个问题..但至少对于某些桌子来说这是一个想法。以上是关于同义词或查看 dblink的主要内容,如果未能解决你的问题,请参考以下文章