【问题标题】:Synonym or view over dblink同义词或查看 dblink
【发布时间】:2014-03-05 13:36:03
【问题描述】:

我们正在用 PL/SQL 编写一些接口例程,以使用另一个 oracle 数据库作为主机在多个 oracle 数据库之间传输数据。 (即人力资源 -> 主持人 -> 财务)

传输是通过 db_links 进行的 本质上

insert into schema.tablname@dblink1 select * from schema.tablename@dblink2;

(它比具有多个表和转换等更复杂。但这是一般的想法)

我们在这里一直在讨论的是以下哪个应该做

  1. 在输出代码中到处引用“schema.tablename@dblink
  2. 创建同义词(公共或私有)“create synonym tablename for schema.tablename@dblink

  3. 在对象“create view tablename as select * from schema.tablename@dblink”上创建视图

还有其他选择吗? 有没有天生比其他人更好的?

注意:dblink 名称在每个级别 dev/test/prod 中都是标准化的 这样 dblink 'server1' 会转到开发主机上的开发服务器和测试主机上的测试服务器等。

任何表名都不应该存在于多个服务器上

【问题讨论】:

    标签: oracle view synonym dblink


    【解决方案1】:

    通过为您的远程对象创建同义词,位置透明度是最简单的设置。这比在每个 SQL 中都有远程地址更容易维护。您将如何对其他远程数据库中的内容进行快速测试?只需重新创建相关的数据库链接即可完成此操作。

    另一种选择是创建快照,即本地数据库中远程表的物化视图,但这也需要数据库链接。它会以额外空间为代价获得良好的性能。

    【讨论】:

    • 我不认为我们现在担心性能..我们不认为这是一个问题..但至少对于某些桌子来说这是一个想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    相关资源
    最近更新 更多