ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 转:详解hints PQ_DISTRIBUTE

转:详解hints PQ_DISTRIBUTE

原创 Linux操作系统 作者:bicube 时间:2009-11-16 09:47:41 0 删除 编辑

PQ_DISTRIBUTE是并行的hints中稍微复杂一点的一个
下面就这个hints做以下说明:

1.使用格式

/*+ PQ_DISTRIBUTE(tablespec outer_distribution inner_distribution )*/

tablespec:表名
outer_distribution:外表如何分割
inner_distribution:内表如何分割

2.选项说明

(1)HASH, HASH

当两个表大小相当而且是采用hash-join 或 sort merge join时ITPUB个人空间
将每个表的连接键hash到不同的查询服务器
hash完成之后 查询服务器将只在成对匹配的partition之间做join

(2)BROADCAST, NONE

当外表比内表小的多 或者至少inner table size * number of query servers > outer table size
外表的所有行被广播到每一个的查询服务器
内表的行被随机分区

(3)NONE, BROADCAST

当内表比外表小的多 或者至少inner table size * number of query servers < outer table size
内表的所有行被广播到每一个查询服务器
外表被随机分区


(4)PARTITION, NONE

内表必须在连接键上分区ITPUB个人空间
外表的所有行被重新分区以和内表匹配ITPUB个人空间
通常在外表的分区数量和查询服务器个数接近相等时使用

(5)NONE, PARTITION

外表必须在连接键上分区
内表的所有行被重新分区以和外表匹配
通常在内表的分区数量和查询服务器个数接近相等时使用

(6)NONE, NONE

所有的表必须在连接键上对等分区
每个查询服务器只需和自己匹配的分区执行join操作

3.jcq0的分析

最佳连接:(6)这种情况是full partition-wise join
次佳连接:(4)(5)这种情况是 partial partition-wise joinITPUB个人空间
     (2)(3)当做连接时的一个表非常小时,可以采用BROADCAST方式ITPUB个人空间;
次次连接:(1)如果两个表的分区情况,大小情况和(2)(3)(4)(5)(6)都不匹配ITPUB个人空间.
     这也是一个不错的选择

4.更多内容

关于hints pq_distribute的更多信息请参考:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements006.htm#BABCJHAF
于partial partition-wise join及full partition-wise join的更多信息请参考:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/ex_plan.htm#sthref1404
http://forums.oracle.com/forums/thread.jspa?messageID=3169105&tstart=0

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22605186/viewspace-619683/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-09-26

  • 博文量
    8
  • 访问量
    13109