SQL调优(SQL TUNING)并行查询提示(Hints)之pq_distribute的使用

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):该组合中,每个并行查询服务器在一对匹配的分区间进行连接操作,每个分区来自一张表。两张表在连接键上必须分区相等。

原文地址:https://www.cnblogs.com/lhdz_bj/p/9104550.html

时间: 2024-11-13 09:02:35

SQL调优(SQL TUNING)并行查询提示(Hints)之pq_distribute的使用的相关文章

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

11g新特性-自动sql调优(Automatic SQL Tuning) 在Oracle 10g中,引进了自动sql调优特性.此外,ADDM也会监控捕获高负载的sql语句. 在Oracle 11g中,通过运行sql tuning advisor加强了自动sql调优功能.默认情况下是每天夜间通过自动任务的方式运行"自动sql调优". 自动sql调优的过程: 1.识别需要调优的sql语句  根据AWR中的CPU和I/O负载来识别 2.调优,生成新的sql profile 在维护窗口(mai

初次使用SQL调优建议工具--SQL Tuning Advisor

在10g中,Oracle推出了自己的SQL优化辅助工具: SQL优化器(SQL Tuning Advisor :STA),它是新的DBMS_SQLTUNE包. 使用STA一定要保证优化器是CBO模式下.可是我觉得使用这样的工具,仅适合全然不懂SQL的调优的人群,不要觉得工具能解决好问题. SQL说究竟是表达的是一个业务,工具怎么可能理解业务.SQL调优还是要用autotrace,10046,10053,display_cursor这些优秀的工具做诊断.然后依据业务和所具备的oracle基础的知识

SQL调优日记--并行等待的原理和问题排查

原文:SQL调优日记--并行等待的原理和问题排查 概述 今天处理项目,客户反应数据库在某个时间段,反应特别慢.需要我们提供一些优化建议. 现象 由于是特定的时间段慢,排查起来就比较方便.直接查看这个时间段数据库的等待情况.查看等待类型发现了大量的CXPAKET等待类型且等待时间长. 有的看官可能知道,出现这个等待类似时,可以适当降低最大并行度来解决.但是为什么这么做呢?降低并行度就一定可以解决问题吗? CXPAKET原理 那什么是CXPAKET 等待呢. 当数据库引擎分析查询的开销超过设定的阀值

《高性能SQL调优精要与案例解析》一书谈主流关系库SQL调优(SQL TUNING或SQL优化)核心机制之——索引(index)

继<高性能SQL调优精要与案例解析>一书谈SQL调优(SQL TUNING或SQL优化),我们今天就谈谈各主流关系库中,占据SQL调优技术和工作半壁江山的.最重要的核心机制之一——索引(index).我们知道,<高性能SQL调优精要与案例解析>一书中也再三强调索引对SQL调优的重要性,可是上篇文章中也谈到,只看案例和解决问题的具体方法,而不掌握SQL调优的基础知识,是没有用的,我们必须做到知其然,更要知其所以然,才能做到融会贯通,活学活用,进而将SQL调优技术掌握到炉火纯青的地步.

数据库学习——SQL调优

一.SQL调优与查询优化器 数据库性能调优一般从发现.分析和解决SQL语句执行中的问题着手,这个过程统称为SQL调优(SQL tuning). 1.了解查询优化器 例如,有些查询优化器对于连接操作,一般按连接对象在FROM子句中出现的先后次序进行连接.SQL程序设计者可以利用此特点将选择性高的小表放在前面,大表放在后面,以尽快淘汰无用的中间结果,从而节省查询处理开销.又如,有些查询优化器中,凡是查询条件用OR连接的,就一概不用索引,因而只能用全表扫描,可以考虑使用UNION ALL代替OR. 2

oracle sql调优集

************************************************************ 1.新建调优集对象 ************************************************************ ---授权 grant ADMINISTER ANY SQL TUNING SET to scott; ---删除存在的STS BEGIN DBMS_SQLTUNE.DROP_SQLSET( sqlset_name => 'OCPYAN

SQL调优

# 问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一.系统优化中一个很重要的方面就是SQL语句的优 化.对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的 SQL语句,提高系统的可用性. 在多数情况下,Oracle

Oracle SQL 调优健康检查脚本

Oracle SQL 调优健康检查脚本 我们关注数据库系统的性能,进行数据库调优的主要工作就是进行SQL的优化.良好的数据架构设计.配合应用系统中间件和写一手漂亮的SQL,是未来系统上线后不出现致命性能问题的有力保证. 在CBO时代,一个SQL的执行计划是多样的.影响执行计划的因素也从过去RBO时代的SQL书写规则变为综合性因素.这为我们生成更加优秀执行计划提供了基础,同时也给我们进行调优带来的很多麻烦. 目前我们通常的做法,是通过AWR报告或者调试手段,发现某某SQL有问题,之后从Librar

SQL调优常用方法

在使用DBMS时经常对系统的性能有非常高的要求:不能占用过多的系统内存和 CPU资源.要尽可能快的完成的数据库操作.要有尽可能高的系统吞吐量.如果系统开发出来不能满足要求的所有性能指标,则必须对系统进行调整,这个工作被称为调优.绝定DBMS的性能的因素有两个因素:硬件和软件.使用频率高的CPU.使用多处理器.加大内存容量.增加Cache.提高网络速度等这些都是非常有效的硬件调优方式,不过对硬件进行调优对系统性能的提高是有限的,如果有非常好的硬件条件但是如果编写的SQL质量非常差的话系统的性能并不

Oracle技术沙龙《SQL调优-从手工到工业化》

 无dba 不调优 没有学过oracle能调优吗? 告诉你  YES I DO AWR出来好几年了,有关它的作用真正理解的有多少?ADDM能干啥?试一试就知道了! Oracle 10a 的出现,DBA会失业吗? SQL优化从传统模式进入工业化,你了解得有多少? SQL Tuning Advisor能够做哪些优化? SQL Access Advisor能够做哪些优化? 本次技术沙龙以上内容一锅端,使用真实的案例来一一的演绎SQL调优的乐趣 特邀讲师陈卫星:从2010至今,已经在Oracle总部做过