检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Merge Append 场景描述 当对分区表进行全局排序时,通常SQL引擎的实现方式是先通过Partition Iterator + PartitionScan对分区表做全量扫描然后进行Sort排序操作,这样难以利用数据分区分治的算法思想进行全局排序,假如ORDER BY排序列
参数说明:设置优化器计算一次查询中执行一个操作符或函数的开销。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:浮点型,0~DBL_MAX。 默认值:0.0025 effective_cache_size 参数说明:设置优化器在一次单一的查询中可用的磁盘缓冲区的有效大小。
场景和immutable函数可以支持PBE动态剪枝 PBE动态剪枝支持表达式、隐式转换、immutable函数和stable函数,不支持子查询表达式和volatile函数。对于stable函数,如to_timestamp等类型转换函数,可能会受GUC参数变化,影响剪枝结果。为了保
force:表示只要查询中不包含向量化引擎不支持的类型或者表达式,则查询的基表为行存表,强制将查询转换为向量化的执行计划执行计算。在这种情况下,针对不同的查询场景可能出现性能下降。 optimal:表示在force的基础上,由优化器根据查询的复杂度进行选择是否将查询语句转换为向量化的
rewrite_rule 参数说明:标识已开启的可选查询重写规则。有部分查询重写规则是可选的,开启它们并不能总是对查询效率有提升效果。在特定的客户场景中,通过此GUC参数对查询重写规则进行设置,使得查询效率最优。 此参数可以控制查询重写规则的组合,比如有多个重写规则:rule1、r
参数说明:设置优化器计算一次查询中执行一个操作符或函数的开销。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:浮点型,0~DBL_MAX。 默认值:0.0025 effective_cache_size 参数说明:设置优化器在一次单一的查询中可用的磁盘缓冲区的有效大小。
表扫描计划,可能影响查询性能。 gsi_fastpath_level 参数说明:控制优化器是否执行全局二级索引简单查询的规则判断系统,全局二级索引的简单查询规则如下: 单个表、没有子查询、没有子链接、目标表不是视图。 查询语句无法生成普通索引的执行计划。 查询语句无法生成GSI的IndexOnlyScan执行计划。
设置不当的风险与影响:该参数影响一次查询中对索引扫描的性能开销评估,错误地设置该参数会影响优化器对生成计划的选择,部分场景下影响查询性能。若要更改,请谨慎操作,避免因误操作产生意料之外的风险。 cpu_operator_cost 参数说明:设置优化器计算一次查询中执行一个操作符或函数的开销。
enable_opfusion 参数说明:控制是否对简单查询进行查询优化。 该开关优化DN的查询性能,可以设置max_datanode_for_plan查看一个查询DN的执行计划,如果DN的执行计划中带有[Bypass]标识则代表该查询在该DN可以查询优化。 简单查询限制如下: 只支持indexsca
Partition Iterator算子消除 场景描述 在当前分区表架构中,执行器通过Partition Iterator算子去迭代访问每一个分区。当分区剪枝结果只有一个分区时,Partition Iterator算子已经失去了迭代器的作用,在此情况下消除Partition It
Hint可以指定表的查询块名和schema名 功能描述 由于在一个查询中,允许在不同查询块使用相同表名,同时不同schema可以有相同表名,因此Hint在指定查询中某个表table时允许指定其所属于的查询块名queryblock和schema名,避免歧义。 该指定方法支持所有需要指定表名的Hint。
场景和immutable函数可以支持PBE动态剪枝 PBE动态剪枝支持表达式、隐式转换、immutable函数和stable函数,不支持子查询表达式和volatile函数。对于stable函数,如to_timestamp等类型转换函数,可能会受GUC参数变化,影响剪枝结果。为了保
rule_base:基于规则的inlist2join查询重写,即强制使用inlist2join查询重写。 任意正整数:inlist2join查询重写阈值,即list内元素个数大于该阈值,进行inlist2join查询重写。 默认值:cost_base skew_option 参数说明:控制是否使用优化策略。
rewrite_rule 参数说明:标识开启的可选查询重写规则。有部分查询重写规则是可选的,开启它们并不能总是对查询效率有提升效果。在特定的客户场景中,通过此GUC参数对查询重写规则进行设置,使得查询效率最优。 此参数可以控制查询重写规则的组合,比如有多个重写规则:rule1、r
参数说明:控制是否对简单查询进行查询优化。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 该开关是优化DN的查询性能,可以设置max_datanode_for_plan查看一个查询DN的执行计划,如果DN的执行计划中带有[Bypass]标识则代表该查询在该DN可以查询优化。
rule_base:基于规则的inlist2join查询重写,即强制使用inlist2join查询重写。 任意正整数:inlist2join查询重写阈值,即in子句内的list内元素个数大于该阈值,进行inlist2join查询重写。 默认值:cost_base skew_option 参数说明:控制是否使用优化策略。
rule_base:基于规则的inlist2join查询重写,即强制使用inlist2join查询重写。 任意正整数:inlist2join查询重写阈值,即in子句内的list内元素个数大于该阈值,进行inlist2join查询重写。 默认值:cost_base skew_option 参数说明:控制是否使用优化策略。
案例:使用全局二级索引加速查询 全局二级索引仅索引扫描 在对基表非分布列进行查询时,因无法进行DN下推查询或利用索引扫描,产生性能问题。 场景一:普通查询。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
GENERATE_SERIES(1,5000),'test'; gaussdb=# ANALYZE test_int4_maxvalue with global; -- 查询指定分区id1 gaussdb=# EXPLAIN SELECT * FROM test_int4_maxvalue PARTITION(id1);
width=0) -> Result (cost=0.00..0.02 rows=1 width=0) (2 rows) --INSERT为子查询,无法执行FastPath优化,走标准执行器模块 gaussdb=# CREATE TABLE test_1(col1 int, col3