有关DBLINK的分布式SQL执行机制及优化.DOCVIP

  • 9
  • 0
  • 约2.49万字
  • 约 14页
  • 2018-12-03 发布于天津
  • 举报

有关DBLINK的分布式SQL执行机制及优化.DOC

有关DBLINK的分布式SQL执行机制及优化

有关DBLINK的分布式SQL执行机制及优化方法 --丁俊 1.背景介绍 分布式查询语句对于远程对象的查询在远程库执行,在远程库可以执行的SQL语句会通过优化器的查询转换,执行的是转换后的语句,然后结果集返回到本地,再与本地表运算。当然, 本地操作还是远程操作是相对的,我们可以通过driving_site hint改变主查询计划的执行位置,但是对DML,driving_site是失效的,另外对远程表也可以使用其他hint来控制执行计划。 2.优化目标 分布式查询语句中可能有不同远程库的表,优化分布式查询要达到3点目标: 1.访问同一个远程库的次数要尽量少,也就是同一远程库的对象应该尽量转为一条SQL运算,一次运算,运算后将结果返回给本地库。 2.从远程库上返回到本地库的结果集要尽量小,只访问远程对象需要的字段,从而减少网络传输。 3.远程库上执行的语句的执行计划、远程库返回的结果与本地联合查询的计划应该比较高效。 如果能够达到以上3点,一般情况下,分布式查询的效率较高。 3.优化方法 优化分布式查询需要从以上3个方面着手。 以下样例中,local_tab 7万多条,remote_big_tab百万条,remote_small_tab 7万多条。 3.1.使用Collocated内联视图 ? 也就是说,SQL要引用不同远程库的表,需要组织好语句结构:将相同库的表放一起组成内联视图,这样ORACLE就很容易知道这个内联视图里的表是在同一远程库作完查询,然后再返回给本地库,这样减少了本地库与远程库的交互次数、传输结果集的数量和次数,从而提高效率。比如查询: SELECT ?* FROM local_tab a ?WHERE EXISTS ?(SELECT ?1 FROM remote_big_tab@remote b,remote_small_tab@remote c ?WHERE b.object_id=c.object_id AND a.object_type=b.object_type); 执行计划 ---------------------------------------------------------- Plan hash value:------------------------------------------------------------------------------------------------ | Id ?| Operation ? ? ? ? ?| Name ? ? ?| Rows ?| Bytes | Cost (%CPU)| Time ? ? | Inst ? |IN-OUT| ------------------------------------------------------------------------------------------------ | ? 0 | SELECT STATEMENT ? | ? ? ? ? ? | 42747 | ?4508K| ?2152 ? (4)| 00:00:26 | ? ? ? ?| ? ? ?| |* ?1 | ?HASH JOIN ? ? ? ? | ? ? ? ? ? | 42747 | ?4508K| ?2152 ? (4)| 00:00:26 | ? ? ? ?| ? ? ?| | ? 2 | ? VIEW ? ? ? ? ? ? | VW_SQ_1 ? | ? ?26 | ? 286 | ?1855 ? (4)| 00:00:23 | ? ? ? ?| ? ? ?| | ??3 | ? ?REMOTE???? ? ? ?| ? ? ? ? ? | ? ? ? | ? ? ? | ? ? ? ? ? ?| ? ? ? ? ?| REMOTE | R-S | | ? 4 | ? TABLE ACCESS FULL| LOCAL_TAB | 73985 | ?7008K| ? 296 ? (1)| 00:00:04 | ? ? ? ?| ? ? ?| ------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- ? ?1 - access(A.OBJECT_TY

文档评论(0)

1亿VIP精品文档

相关文档