【问题标题】:Add Indexes to columns in remote table - Oracle向远程表中的列添加索引 - Oracle
【发布时间】:2011-07-29 06:52:09
【问题描述】:

我正在使用 DBLink 查询远程数据库。现在想加快查询速度,如何向远程表中的几列添加索引。 如果有人能提供任何相同的建议,将不胜感激。

【问题讨论】:

  • 谁拥有数据库?除非您拥有数据库,否则您不能随意添加索引。索引并不总是答案。
  • +1 用于指定索引并不总是答案。在涉及数据库链接的地方,有许多用于调整查询的选项,但并非都涉及索引。
  • John C,您能否发布有关您在远程数据库上执行的查询的更多信息,然后您将获得更多改善响应时间的选项。

标签: sql oracle indexing dblink


【解决方案1】:

您可以在远程数据库上使用 DBMS_JOB 或 DBMS_SCHEDULER 包来安排作业,执行 DDL。

但是考虑到这一点,如果 Oracle 在数据库链接上为 DDL 抛出异常,那一定是有充分理由的,对吧?您不希望任何人通过数据库链接远程弄乱您的架构。因此,请与远程 DBA 交谈并尝试与他/她一起找出解决方案。

【讨论】:

    【解决方案2】:

    它不能通过 dblink 完成(即使您的 dblink 正在使用拥有的架构)您会看到

    ORA-02021: DDL operations are not allowed on a remote database
    

    【讨论】:

      【解决方案3】:

      您可以根据您的查询在远程数据库中创建一个物化视图,向其中添加您喜欢的索引,然后,如果您需要它,为该物化视图创建一个同义词。

      【讨论】:

        【解决方案4】:

        约翰, 一个好的起点是以下关于“调整分布式查询”的 Oracle 文档。

        http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/ds_appdev004.htm

        【讨论】:

        • 一个最重要的线程是让远程数据库在远程数据上做尽可能多的工作,从而只返回调用(本地)数据库所需的最低限度。
        【解决方案5】:

        您可以在远程数据库中创建索引并以视图形式(当然在远程数据库中)构建您的查询。 这样远程数据库将使用他获得的所有方法(如索引)完成查询,并只为您返回想要的结果。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-09-17
          • 1970-01-01
          • 2021-10-15
          • 2019-07-29
          • 2012-01-12
          • 1970-01-01
          • 2021-05-09
          相关资源
          最近更新 更多