使用Plan Hint进行调优-Plan Hint实际调优案例
本节以TPC-DS标准测试的Q24的部分语句为例,在1000X,24DN环境上,说明使用planhint进行实际调优的过程。示例如下:selectavg(netpaid)from(selectc_last_name,c_first_name,s_store_name,ca_state,s_state
使用Plan Hint进行调优-Hint的错误、冲突及告警
PlanHint的结果会体现在计划的变化上,可以通过explain来查看变化。Hint中的错误不会影响语句的执行,只是不能生效,该错误会根据语句类型以不同方式提示用户。对于explain语句,hint的错误会以warning形式显示在界面上,对于非explain语句,会以debug1级别日志显示在日
使用Plan Hint进行调优-运行倾斜
功能描述指明查询运行时重分布过程中存在倾斜的重分布键和倾斜值,针对Join和HashAgg运算中的重分布进行优化。语法格式指定单表倾斜:skew(table(column)[(value)])指定中间结果倾斜:skew((join_rel)(column)[(value)])参数说明table表示存
使用Plan Hint进行调优-子链接块
功能描述指明子链接块的名称。语法格式blockname(table)参数说明table表示为该子链接块hint的别名的名称。说明:blocknamehint仅在对应的子链接块提升时才会被上层查询使用。目前支持的子链接提升包括IN子链接提升、EXISTS子链接提升和包含Agg等值相关子链接提升。该hi
使用Plan Hint进行调优-Scan方式
功能描述指明scan使用的方法,可以是tablescan、indexscan和indexonlyscan。语法格式[no]tablescan|indexscan|indexonlyscan(table[index])参数说明no表示hint的scan方式不使用。table表示hint指定的表,只能指
使用Plan Hint进行调优-Stream方
功能描述指明stream使用的方法,可以为broadcast和redistribute。语法格式[no]broadcast|redistribute(table_list)参数说明no表示hint的stream方式不使用。table_list为进行stream操作的单表或多表join结果集,见参数说
使用Plan Hint进行调优-行数的
功能描述指明中间结果集的大小,支持绝对值和相对值的hint。语法格式rows(table_list#|+|-|*const)参数说明#,+,-,*,进行行数估算hint的四种操作符号。#表示直接使用后面的行数进行hint。+,-,*表示对原来估算的行数进行加、减、乘操作,运算后的行数最小值为1行。t
使用Plan Hint进行调优-行数的
功能描述指明中间结果集的大小,支持绝对值和相对值的hint。语法格式rows(table_list#|+|-|*const)参数说明#,+,-,*,进行行数估算hint的四种操作符号。#表示直接使用后面的行数进行hint。+,-,*表示对原来估算的行数进行加、减、乘操作,运算后的行数最小值为1行。t
使用Plan Hint进行调优-行数的
功能描述指明中间结果集的大小,支持绝对值和相对值的hint。语法格式rows(table_list#|+|-|*const)参数说明#,+,-,*,进行行数估算hint的四种操作符号。#表示直接使用后面的行数进行hint。+,-,*表示对原来估算的行数进行加、减、乘操作,运算后的行数最小值为1行。t
使用Plan Hint进行调优-Join方式
功能描述指明Join使用的方法,可以为NestedLoop,HashJoin和MergeJoin。语法格式[no]nestloop|hashjoin|mergejoin(table_list)参数说明no表示hint的join方式不使用。table_list为表示hint表集合的字符串,该字符串中的
使用Plan Hint进行调优-Join顺序
功能描述指明join的顺序,包括内外表顺序。语法格式仅指定join顺序,不指定内外表顺序。leading(join_table_list)同时指定join顺序和内外表顺序,内外表顺序仅在最外层生效。leading((join_table_list))参数说明join_table_list为表示表jo
使用Plan Hint进行调优-Plan Hint
PlanHint为用户提供了直接影响执行计划生成的手段,用户可以通过指定join顺序,join、stream、scan方法,指定结果行数,指定重分布过程中的倾斜信息等多个手段来进行执行计划的调优,以提升查询的性能。功能描述PlanHint仅支持在SELECT关键字后通过如下形式指定:/*+<p
SQL调优指南-使用Plan Hint进行调优
使用PlanHint进行调优PlanHint调优概述Join顺序的HintJoin方式的Hint行数的HintStream方式的HintScan方式的Hint子链接块名的hint运行倾斜的hintHint的错误、冲突及告警PlanHint实际调优案例
SQL调优指南-SQL调优关键参数调整
本节将介绍影响GaussDB200SQL调优性能的关键CN配置参数,配置方法参见配置运行参数。表1CN配置参数参数/参考值描述enable_nestloop=on控制查询优化器对嵌套循环连接(NestLoopJoin)类型的使用。当设置为“on”后,优化器优先使用NestLoopJoin;当设置为“
SQL调优指南-经验总结:SQL语句改写规则
根据数据库的SQL执行机制以及大量的实践,总结发现:通过一定的规则调整SQL语句,在保证结果正确的基础上,能够提高SQL执行效率。如果遵守这些规则,常常能够大幅度提升业务查询效率。使用unionall代替unionunion在合并两个集合时会执行去重操作,而unionall则直接将两个结果集合并、不
典型SQL调优点-数据倾斜调优
数据倾斜问题是分布式架构的重要难题,它破坏了MPP架构中各个节点对等的要求,导致单节点(倾斜节点)所存储或者计算的数据量远大于其他节点,所以会造成以下危害:存储上的倾斜会严重限制系统容量,在系统容量不饱和的情况下,由于单节点倾斜的限制,使得整个系统容量无法继续增长。计算上的倾斜会严重影响系统性能,由
典型SQL调优点-算子级调优
算子级调优介绍一个查询语句要经过多个算子步骤才会输出最终的结果。由于各别算子耗时过长导致整体查询性能下降的情况比较常见。这些算子是整个查询的瓶颈算子。通用的优化手段是EXPLAINANALYZE/PERFORMANCE命令查看执行过程的瓶颈算子,然后进行针对性优化。如下面的执行过程信息中,Hasha
典型SQL调优点-统计信息调优
统计信息调优介绍GaussDB200是基于代价估算生成的最优执行计划。优化器需要根据analyze收集的统计信息行数估算和代价估算,因此统计信息对优化器行数估算和代价估算起着至关重要的作用。通过analyze收集全局统计信息,主要包括:pg_class表中的relpages和reltuples;pg
典型SQL调优点-子查询调优
子查询背景介绍应用程序通过SQL语句来操作数据库时会使用大量的子查询,这种写法比直接对两个表做连接操作在结构上和思路上更清晰,尤其是在一些比较复杂的查询语句中,子查询有更完整、更独立的语义,会使SQL对业务逻辑的表达更清晰更容易理解,因此得到了广泛的应用。GaussDB200根据子查询在SQL语句中
典型SQL调优点-语句下推调优
语句下推介绍目前,GaussDB200优化器在分布式框架下制定语句的执行策略时,有三种执行计划方式:生成下推语句计划、生成分布式执行计划、生成发送语句的分布式执行计划。下推语句计划:指直接将查询语句从CN发送到DN进行执行,然后将执行结果返回给CN。分布式执行计划:指CN对查询语句进行编译和优化,生