pq_distribute提示通常被用于提升数据仓库中分区表间的连接操作性能。 pq_distribute提示允许你确定参与连接的表数据行在生产和消费并行查询服务进程间如何分配。 pq_distribute提示接受三个参数:表名,外分配和内分配。

当执行并行查询连接时,我们总是想着避免PARALLEL_TO_PARALLEL执行计划。PARALLEL_TO_PARALLEL操作意味着输入输出数据流都是并行的,导致连接性能低下。另一方面,PARALLEL_COMBINED_WITH_PARENT操作意味着将排序和合并操作组合进一个操作。

使用pq_distribute提示前,有些Oracle DBA通常通过删除内部表的CBO统计信息来欺骗SQL优化器,以强制采用 PARALLEL_COMBINED_WITH_PARENT操作。因为SQL优化器根据这些CBO统计信息来评估候选广播表的大小。当表大于某个阈值时,表将通过PARALLEL_TO_PARALLEL 执行模式连接,这将导致很低的性能。

pq_distribute提示可以接受六个参数组合 。记住,参数顺序是外分配在前,内分配在后。

1)        pq_distribute(tab_name, hash,hash):该组合将表数据行通过连接键上的哈希函数分配给消费并行查询服务进程。完成映射后,每个查询服务进程在一对结果分区间进行连接。当表大小相当且通过哈希或排序合并实现连接操作时,推荐使用该提示。

2)        pq_distribute(tab_name,broadcast, none):该组合确保外表所有数据行被广播到每个消费并行服务进程,同时,内表数据行被随机分区。当外表比内表小很多时,推荐使用该提示。一个重要原则是,如果内表大小乘以并行服务进程数大于外表大小,则使用broadcast/none。

3)        pq_distribute(tab_name, none,broadcast):该组合强制内表所有的数据行广播给每个消费并行查询服务进程,同时,外表数据行被随机分区。当内表比外表小时,推荐使用该提示。一个重要原则是,当内表大小乘以并行查询服务进程数小于外表大小时,推荐使用none/broadcase提示。

4)        pq_distribute(tab_name,partition, none):该组合通过内表分区来映射外表数据行,同时,内表必须按连接键分区。当内表分区数等于或接近并行查询服务进程数时,推荐使用该提示。

5)        pq_distribute(tab_name, none,partition):该组合通过外表分区来映射内表数据行,同时,外表必须按分区键分区。当外表分区数等于或接近并行查询服务进程数时,推荐使用该组合。

6)        pq_distribute(tab_name, none,none):该组合中,每个并行查询服务器在一对匹配的分区间进行连接操作,每个分区来自一张表。两张表在连接键上必须分区相等。

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

oracle pq distribute,SQL调优(SQL TUNING)并行查询提示(Hints)之pq_distribute的使用相关推荐

  1. 十分钟释疑Oracle中“小表超慢”之谜(SQL调优/SQL优化)

    前几天,一个用户找到我,说查一个小表的时候非常慢,我问有多慢,他说最快也得半个小时才能出结果,有时干脆不出结果,我说小表多大,他说就几十兆,有点疑惑,让他帮忙获取了相关信息,一看就明白了,原来所谓的小 ...

  2. MYSQL 之 SQL 调优

    SQL 调优 不适用子查询 SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name='hechunyang'); 子查询在 MYSQL5.5 版 ...

  3. Oracle中SQL调优(SQL TUNING)之最权威获取SQL执行计划大全

    该文档为根据相关资料整理.总结而成,主要讲解Oracle数据库中,获取SQL语句执行计划的最权威.最正确的方法.步骤,此外,还详细说明了每种方法中可选项的意义及使用方法,以方便大家和自己日常工作中查阅 ...

  4. 11g新特性-自动sql调优(Automatic SQL Tuning)

    11g新特性-自动sql调优(Automatic SQL Tuning) 在Oracle 10g中,引进了自动sql调优特性.此外,ADDM也会监控捕获高负载的sql语句. 在Oracle 11g中, ...

  5. 《高性能SQL调优精要与案例解析》一书谈主流关系库SQL调优(优化TUNING)技术精髓之——执行计划获取及理解

    <高性能SQL调优精要与案例解析>中,主要以Oracle为样本讲解了SQL调优(优化&TUNING),其中,前面博文中本人也说到,就SQL调优的思路.方法和步骤来说,各关系库几乎是 ...

  6. Oracle Hints,Oracle并行模式(Parallel) /*+parallel(t,4)*/ 在SQL调优中的重要作用

    /*+parallel(t,4)*/在SQL调优中的重要作用! 2013年11月17日 12:59:24 雾里看花5566 阅读数:5422更多 个人分类: 数据库-oracle 谈谈HINT /*+ ...

  7. oracle sql 分区查询语句_Oracle SQL调优之分区表

    一.分区表简介 分区通过让您将它们分解为更小且更易于管理的分区(称为分区)来解决支持非常大的表和索引的关键问题.不需要修改SQL查询和DML语句以访问分区表.但是,在定义分区之后,DDL语句可以访问和 ...

  8. oracle sql 执行计划分析_Oracle SQL调优系列之看懂执行计划explain

    1.文章写作前言简介 SQL调优系列博客链接:SQL调优专栏 之前曾经拜读过<收获,不止sql调优>一书,此书是国内DBA写的一本很不错的调优类型的书,是一些很不错的调优经验的分享.虽然读 ...

  9. oracle避免回表,请教大家: 经常在sql调优过程中提到避免“回表”,具体是指什么意思???3Q...

    你的位置: 问答吧 -> Oracle -> 问题详情 请教大家: 经常在sql调优过程中提到避免"回表",具体是指什么意思???3Q 如题,不甚感激!!!! [ 本帖 ...

  10. Oracle SQL调优系列之no_unnest和unnest用法简介

    Oracle调优之no_unnest和unnest用法简介 本博客介绍Oracle SQL调优的一种常用也是很实用的方法,也即/*+no_unnest */和/*+ unnest*/,介绍Oracle ...

最新文章

  1. android studio安装在其他盘,Android Studio配置移动到D盘(亲测)
  2. OAuth2.0相关知识
  3. Schnorr身份识别方案
  4. SharpDeveloeper开发ASP.NET MVC汗流浃背
  5. 小手工纸盒机器人_亲子手工 | DIY弹珠迷宫小黑手自制玩具系列
  6. C++实现线段树(lazy-tag方法)-区间修改,区间查询
  7. vs设计窗口不见了_龙猫腕表评测:VS沛纳海320V2版本
  8. python负数的表示方法_python输入负数
  9. 【Python】Python3.7.3 - memoization 结果缓存记忆程序设计优化技术
  10. .NET Core 管道
  11. java csrf 跨域_使用javascript跨域请求与CSRF
  12. KDD18 DIN Deep Interest Network for Click-Through Rate Prediction
  13. greensock插件下载_使用GreenSock插件轻松制作精美的Web动画
  14. 初学者如何利用米思齐编写出一套完整的程序
  15. 基于Java实现大学生求职招聘信息网站系统
  16. 电脑重装系统后如何把网站设为首页
  17. 八、T100库存管理系统之月结管理
  18. 天河二号上运行ZHT(a zero-hop distributed table)
  19. 嗨格式Heic图片转换器v1.0.13.1436官方版
  20. 3D中点线面之间的几何关系

热门文章

  1. java utf8 简繁转换 类库_java简繁转换(区分港台)
  2. BUUCTF [极客大挑战 2019] PHP
  3. flash download failed 问题解决
  4. ios 10 简单配置
  5. android官网m魅族15,魅族15系列亮相安卓官网 圆形Home键亮了
  6. 【修复日常bug】微信小程序canvas画商品海报出现个别用户无法生成的情况
  7. 钢筋铁骨的我,还是被各种奇葩渣公司打得措手不及
  8. 图文并茂,让ATEasy驱动配置更easy!
  9. 一个10年测试老鸟珍藏的自学软件测试的网站有哪些?吐血推荐!
  10. 使用PHP生成不重复的随机数