数据仓库服务 GAUSSDB(DWS)-开发人员选项:rewrite_rule
rewrite_rule
参数说明:标识开启的可选查询重写规则。有部分查询重写规则是可选的,开启它们并不能总是对查询效率有提升效果。在特定的客户场景中,通过此GUC参数对查询重写规则进行设置,使得查询效率最优。
此参数可以控制查询重写规则的组合,比如有多个重写规则:rule1、rule2、rule3、rule4。可以设置:
set rewrite_rule=rule1; --启用查询重写规则rule1 set rewrite_rule=rule2,rule3; --启用查询重写规则rule2和rule3 set rewrite_rule=none; --关闭所有可选查询重写规则
参数类型:USERSET
取值范围:字符串
- none:不使用任何可选查询重写规则
- lazyagg:使用Lazy Agg查询重写规则(消除子查询中的聚集运算)
- magicset:使用Magic Set查询重写规则(从主查询中下推条件到提升的子链接)
- uniquecheck:使用Unique Check重写规则(允许目标列不含聚集函数的表达式子链接场景提升,需在子链接按关联列聚集后目标列值唯一才能开启,建议专业调优人员使用)。
- disablerep:使用禁止复制表的子链接提升规则(针对复制表禁止子链接提升)。
- projection_pushdown:使用Projection Pushdown重写规则(子查询中消除父查询不使用的列)。
- or_conversion:使用OR转换重写规则(消除执行效率低下的关联OR条件)。
- plain_lazyagg:使用Plain Lazy Agg查询重写规则(消除单子查询中的聚集操作)。该选项仅8.1.3.100及以上集群版本支持。
- eager_magicset:使用eager_magicset查询重写规则(从主查询中下推条件到子查询)。该选项仅8.2.0及以上集群版本支持。
- casewhen_simplification:使用casewhen语句改写的重写规则,开启后对(case when xxx then const1 else const2)=const1场景进行改写。该选项仅8.3.0及以上集群版本支持。
- outer_join_quality_imply:支持外连接中外表的表达式过滤条件(非等值,等值过滤条件已经支持)通过等值关联条件传递并下推到内表,减少内表扫描返回数据量。该选项仅8.3.0及以上集群版本支持。
- inlist_merge:使用inlist_or_inlist查询重写规则,支持基表相同列的or语句合并,开启后对(where a in (list1) or a in (list2))进行合并改写,合并后可支持inlist2join。该选项仅8.3.0及以上集群版本支持。
默认值:magicset, or_conversion, projection_pushdown, plain_lazyagg
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- 数据管理服务DAS_云数据库_数据库智能运维
- 如何进行日志采集和转储_日志平台_日志接入_日志转储
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控