-1

我有一个旧版本 Oracle 8.1.7 的数据库,我一直在运行以下联合查询

select c_ordine_es
         ,c_ordine_salesnet
         ,v_oyov
         ,v_annuale
         ,v_oneoff
         ,v_canone
         ,c_operatore_tam
     from v_ordine_cliente_easysell

    where d_ultima_modifica>DataRif
    union
   select c_ordine_es
         ,c_ordine_salesnet
         ,v_oyov
         ,v_annuale
         ,v_oneoff
         ,v_canone
         ,c_operatore_tam
     from v_ordine_cliente_easysell v
         ,scarti_interfaccia_easysell_o s
    where s.c_codice_es=v.c_ordine_es
      and s.t_tabella_es=pkType.K_SCARTO_ORDINE_CLIENTE;

每次我运行这些查询时,SQL 客户端(我正在使用 Toad)都会挂起。在这里我必须提到数据v_ordine_cliente_easysellscarti_interfaccia_easysell_o这两个视图/同义词是使用 DB Link(到另一个 SIEBEL DB)获取的。我想问题是在通过 DB_LINK 获取数据时发生的,因为 SIEBEL DB 一直很忙。请您建议我如何调整上述查询?

解释计划如下

操作选项 OBJECT_NODE 位置成本基数字节
选择声明 28 28 478912 61779648
哈希连接 1 28 478912 61779648
索引快速全扫描 1 2 11354 102186
远程 SIEB.WORLD 2 23 4218 506160
4

1 回答 1

0
  1. 制作 table 的本地副本v_ordine_cliente_easysell
  2. scarti_interfaccia_easysell_o制作使用过滤 的表的本地副本t_tabella_es=pkType.K_SCARTO_ORDINE_CLIENTE
  3. 在本地副本上运行查询,但使用UNION ALL
于 2012-12-18T12:49:40.630 回答