检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Plan Hint调优概述 Plan Hint为用户提供了直接影响执行计划生成的手段,用户可以通过指定join顺序,join、stream、scan方法,指定结果行数,指定重分布过程中的倾斜信息,指定配置参数的值等多个手段来进行执行计划的调优,以提升查询的性能。 功能描述 Plan
Scan方式的Hint 功能描述 指明scan使用的方法,可以是tablescan、indexscan和indexonlyscan。 语法格式 1 [no] tablescan|indexscan|indexonlyscan([@block_name] table [index])
配置参数的hint 功能描述 指明计划生成时配置参数的值,又称作guc hint。 注意事项 如果hint设置的配置参数在语句级别生效,则该hint必须写在顶层查询中,而不能写在子查询中。对于UNION、INTERSECT、EXCEPT和MINUS语句,可以将在语句级别的guc
Join顺序的Hint 功能描述 指明join的顺序,包括内外表顺序。 语法格式 仅指定join顺序,不指定内外表顺序。 1 leading(join_table_list) 同时指定join顺序和内外表顺序,内外表顺序仅在最外层生效。 1 leading((join_table_list))
配置参数的hint 功能描述 指明计划生成时配置参数的值,又称作guc hint。 语法格式 set [global](guc_name guc_value) 参数说明 global表示hint设置的配置参数在语句级别生效,不加global表示hint设置的配置参数在子查询级别生
字典编码的hint 功能描述 通过设置指定列来构建字典编码,将字典编码的字符串的比较转化为数字的比较,加快group by、filter等查询速度。该hint仅8.3.0及以上集群版本支持。 注意事项 目前只支持新版的hstore表(表级参数为enable_hstore_opt为on)。
PGXC_OBS_IO_SCHEDULER_PERIODIC_STATS PGXC_OBS_IO_SCHEDULER_PERIODIC_STATS视图统计了OBS IO Scheduler不同请求类型(包括读/写/文件操作)下的请求数量、流控信息等内容。该系统视图仅9.1.0及以上版本支持。
Scan方式的Hint 功能描述 指明scan使用的方法,可以是tablescan、indexscan和indexonlyscan。 语法格式 1 [no] tablescan|indexscan|indexonlyscan(table [index]) 参数说明 no表示hint的scan方式不使用。
JDBC包与驱动类 JDBC包 从管理控制台下载包名为dws_8.x.x_jdbc_driver.zip的软件包。 请参见下载JDBC或ODBC驱动。 解压后有两个JDBC的驱动jar包: gsjdbc4.jar:与PostgreSQL保持兼容的驱动包,其中类名、类结构与Post
Join顺序的Hint 功能描述 指明join的顺序,包括内外表顺序。 语法格式 单层圆括号(),仅指定join顺序,不指定内外表顺序。 1 2 leading(join_table_list) leading(@block_name join_table_list) 双层
Plan Hint实际调优案例 本节以TPC-DS标准测试的Q24的部分语句为例,在1000X,24DN环境上,说明使用plan hint进行实际调优的过程。示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Hint的错误、冲突及告警 Plan Hint的结果会体现在计划的变化上,可以通过explain来查看变化。 Hint中的错误不会影响语句的执行,只是不能生效,该错误会根据语句类型以不同方式提示用户。对于explain语句,hint的错误会以warning形式显示在界面上,对于非
运行倾斜的hint 功能描述 指明查询运行时重分布过程中存在倾斜的重分布键和倾斜值,针对Join和HashAgg运算中的重分布进行优化。 语法格式 指定单表倾斜: 1 skew(table (column) [(value)]) 指定中间结果倾斜: 1 skew((join_rel)
Hint的错误、冲突及告警 Plan Hint的结果会体现在计划的变化上,可以通过explain来查看变化。 Hint中的错误不会影响语句的执行,只是不能生效,该错误会根据语句类型以不同方式提示用户。对于explain语句,hint的错误会以warning形式显示在界面上,对于非
运行倾斜的hint 功能描述 指明查询运行时重分布过程中存在倾斜的重分布键和倾斜值,针对Join和HashAgg运算中的重分布进行优化。 注意事项 skew hint仅在需要重分布且指定的倾斜信息与查询执行过程中的重分布信息相匹配时才会被使用。 skew hint受GUC参数sk
Plan Hint实际调优案例 本节以TPC-DS标准测试的Q24的部分语句为例,在1000X,24DN环境上,说明使用plan hint进行实际调优的过程。示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
步骤2:测试初始表结构下的系统性能并建立基线 在优化表结构前后,请测试和记录以下详细信息以对比系统性能差异: 数据加载时间。 表占用的存储空间大小。 查询性能。 本次实践中的示例基于使用8节点的dws.d2.xlarge集群。因为系统性能受到许多因素的影响,即使您使用相同的集群配置,结果也会有所不同。
子链接块名的hint 功能描述 指明子链接块的名称。 语法格式 1 blockname ([@block_name] table) 注意事项 block_name hint仅在对应的子链接块提升时才会被上层查询使用。目前支持的子链接提升包括IN子链接提升、EXISTS子链接提升
子链接块名的hint 功能描述 指明子链接块的名称。 语法格式 1 blockname (table) 参数说明 table表示为该子链接块hint的别名的名称。 blockname hint仅在对应的子链接块提升时才会被上层查询使用。目前支持的子链接提升包括IN子链接提升、E
指定子查询不提升的hint 功能描述 优化器在对查询进行逻辑优化时通常会将可以提升的子查询提升到上层以避免嵌套执行,但对于某些场景,嵌套执行不会导致性能下降过多,而提升之后扩大了查询路径的搜索范围,可能导致性能变差。对于此类情况,可以使用no merge hint指定子查询不提升