• 详解Oracle hints PQ_DISTRIBUTE


    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时将每个表的连接键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

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

    (5)NONE, PARTITION

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

    (6)NONE, NONE

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

    3.jcq0的分析

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

  • 相关阅读:
    2014 中华架构师大会 回想
    mybatis重拾---部署官方demo
    D 语言学习感受
    D语言学习
    D语言简介
    C++输入cin详解
    C++源文件的后缀名问题
    C 函数指针详解
    Linux下的五个查找命令:grep、find、locate、whereis、which
    Qt---QFtp上传、下载二进制文件
  • 原文地址:https://www.cnblogs.com/pekkle/p/6568782.html
Copyright © 2020-2023  润新知