检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
用,用户通过其他运维视图或定位手段识别到业务语句存在计划不优导致的性能问题时,可以通过创建SQL PATCH对业务语句进行基于Hint的调优。目前支持行数、扫描方式、连接方式、连接顺序、PBE custom/generic计划选择、语句级参数设置、参数化路径的Hint。此外,对于
用,用户通过其他运维视图或定位手段识别到业务语句存在计划不优导致的性能问题时,可以通过创建SQL PATCH对业务语句进行基于Hint的调优。目前支持行数、扫描方式、连接方式、连接顺序、PBE custom/generic计划选择、语句级参数设置、参数化路径的Hint。此外,对于
用,用户通过其他运维视图或定位手段识别到业务语句存在计划不优导致的性能问题时,可以通过创建SQL PATCH对业务语句进行基于hint的调优。目前支持行数、扫描方式、连接方式、连接顺序、PBE custom/generic计划选择、语句级参数设置、参数化路径的hint。此外,对于
GLOBAL_PREPARE_STATEMENT_STATUS GLOBAL_PREPARE_STATEMENT_STATUS视图显示全部节点的GPC全局计划缓存状态对应的prepare statement信息。具体字段见LOCAL_PREPARE_STATEMENT_STATUS 父主题: Global
name 表或索引的对象编号。 object_name name 操作对应的对象名,来自于用户定义。 object_alias character varying(261) 暂不支持,值为NULL。 object_type character varying(30) 对象类型。 optimizer
当往分区表中插入数据时候,如果插入的数据为常量/参数/表达式等简单类型,会自动对INSERT算子进行执行优化(FastPath)。可以通过执行计划来判断是否触发了执行优化,触发执行优化时Insert计划前会带有FastPath关键字。 示例 gaussdb=# CREATE TABLE fastpath_t1 (
Hint后目标SQL的计划,对比计划是否符合要求以验证Plan Hint的效果。explain有多种计划展示的模式,通过explain_perf_mode进行控制。本节的示例一般通过设置explain_perf_mode为pretty模式来展示计划,展示较全的计划相关信息。部分示例设
NALYZE命令后,可在上述系统表或系统视图PG_STATS、PG_EXT_STATS内查询收集到的统计信息。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。 如果没有指定参数,ANALYZE会分析当前数据库中的每个表和分区表。同时也可以通过指定table_name、c
interval) END $$ LANGUAGE SQL IMMUTABLE; 优化说明 分析语句的执行计划,发现执行计划中显示的基表filter如下: Filter: (((year_mth)::text <= '201702'::text) AND ((year_mth)::text
NALYZE命令后,可在上述系统表或系统视图PG_STATS、PG_EXT_STATS内查询收集到的统计信息。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。 如果没有指定参数,ANALYZE会分析当前数据库中的每个表和分区表。同时也可以通过指定table_name、c
可在上述系统表中查询收集到的统计信息,也可以通过系统视图PG_STATS、PG_EXT_STATS查询信息。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。 如果没有指定参数,ANALYZE会分析当前数据库中的每个表和分区表。同时也可以通过指定table_name、c
层Agg调优,最终计划如下图所示,运行时间94s,完成调优。 如果有统计信息变更引起的查询劣化,可以考虑用plan hint来调整到之前的查询计划。这里以TPCH-Q17为例,在收集default_statistics_target设置为–2的统计信息之后,计划相比于默认统计信息发生劣化。
枝。根据剪枝阶段的不同,分区剪枝分为静态剪枝和动态剪枝,静态剪枝在优化器阶段进行,在生成计划之前,数据库已经知道需要访问的分区信息;动态剪枝在执行器阶段进行(执行开始/执行过程中),在生成计划时,数据库并不知道需要访问的分区信息,只是判断“可以进行分区剪枝”,具体的剪枝信息由执行器决定。
object_name name 操作对应的对象名,来自于用户定义。 object_node character varying(128) 暂不支持,值为NULL。 object# numeric 暂不支持,值为NULL。 object_owner name 表或索引的对象编号。 object_alias
GaussDB通过SQL语句执行不同的系统操作,比如:设置变量,显示执行计划和垃圾收集等操作。 设置变量 设置会话或事务中需要使用的各种参数,请参考SET。 显示执行计划 显示GaussDB为SQL语句规划的执行计划,请参考EXPLAIN。 事务日志检查点 预写式日志(WAL)缺省时
GaussDB通过SQL语句执行不同的系统操作,比如:设置变量,显示执行计划和垃圾收集等操作。 设置变量 设置会话或事务中需要使用的各种参数,请参考SET。 显示执行计划 显示GaussDB为SQL语句规划的执行计划,请参考EXPLAIN。 事务日志检查点 预写式日志(WAL)缺省时
GaussDB通过SQL语句执行不同的系统操作,比如:设置变量,显示执行计划和垃圾收集等操作。 设置变量 设置会话或事务中需要使用的各种参数,请参考SET。 显示执行计划 显示GaussDB为SQL语句规划的执行计划,请参考EXPLAIN。 事务日志检查点 预写式日志(WAL)缺省时
GaussDB通过SQL语句执行不同的系统操作,比如:设置变量,显示执行计划和垃圾收集等操作。 设置变量 设置会话或事务中需要使用的各种参数,请参考SET。 显示执行计划 显示GaussDB为SQL语句规划的执行计划,请参考EXPLAIN。 事务日志检查点 预写式日志(WAL)缺省时
Filter: (b > $0) (2 rows) 可以看到带scandop hint的计划多了一个Aggregate算子,这是Stream算子消除后的残留。 普通计划只有一层Aggregate算子,两种计划不影响最终结果。 父主题: 使用Plan Hint进行调优
查询改写的Hint 功能描述 优化器支持一系列查询改写规则,可以对SQL语句进行等价的逻辑改写,从而生成更好的执行计划。但在一些场景下,用户并不希望改写SQL语句、或者优化器的改写会导致计划跳变,对于这些特定的场景,需要能够使用hint对改写规则进行控制,让优化器按照特定的方式进行改写。目前