计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

优化器方法配置

更新时间:2024-08-20 GMT+08:00

这些配置参数提供了影响查询优化器选择查询规划的原始方法。如果优化器为特定的查询选择的缺省规划并不是最优的,可以通过使用这些配置参数强制优化器选择一个不同的规划来临时解决这个问题。更好的方法包括调节优化器开销常量、手动运行ANALYZE、增加配置参数default_statistics_target的值、增加使用ALTER TABLE SET STATISTICS为指定列增加收集的统计信息。

enable_bitmapscan

参数说明:控制优化器对位图扫描规划类型的使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:关闭后会全局禁止bitmap scan算子,可能导致部分场景性能下降。若要更改,请谨慎操作,避免因误操作产生意料之外的风险。

force_bitmapand

参数说明:控制优化器对bitmapand规划类型的强制使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:off

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_hashagg

参数说明:控制优化器对哈希聚集规划类型的使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_hashjoin

参数说明:控制优化器对哈希连接规划类型的使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_indexscan

参数说明:控制优化器对索引扫描规划类型的使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_gsitablescan

参数说明:控制优化器对全局二级索引表扫描规划类型的使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:设置为默认值。

enable_indexonlyscan

参数说明:控制优化器对仅索引扫描规划类型的使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_gsiscan

参数说明:控制优化器对仅全局二级索引扫描规划类型的使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_material

参数说明:控制优化器对实体化的使用。消除整个实体化是不可能的,但是可以关闭这个变量以防止优化器插入实体节点。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_mergejoin

参数说明:控制优化器对融合连接规划类型的使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:off

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

enable_nestloop

参数说明:控制优化器对内表全表扫描嵌套循环连接规划类型的使用。完全消除嵌套循环连接是不可能的,但是关闭这个变量就会让优化器在存在其他方法的时候优先选择其他方法。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:off

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

enable_index_nestloop

参数说明:控制优化器对内表参数化索引扫描嵌套循环连接规划类型的使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_seqscan

参数说明:控制优化器对顺序扫描规划类型的使用。完全消除顺序扫描是不可能的,但是关闭这个变量会让优化器在存在其他方法的时候优先选择其他方法。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:

enable_sort

参数说明:控制优化器使用的排序步骤。完全消除明确的排序是不可能的,但是关闭这个变量可以让优化器在存在其他方法的时候优先选择其他方法。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_tidscan

参数说明:控制优化器对TID扫描规划类型的使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_kill_query

参数说明:CASCADE模式删除用户时,会删除此用户拥有的所有对象。此参数标识在删除用户的时候,是否允许取消锁定此用户所属对象的查询。

参数类型:布尔型

参数单位:

取值范围

  • on:表示允许取消锁定。
  • off:表示不允许取消锁定。

默认值:off

设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_stream_concurrent_update

参数说明:控制优化器在并发更新场景下对stream的使用,该参数受限于enable_stream_operator参数。如果出现并发update冲突,有一定可能会出现报错,可以通过本参数控制。

参数类型:布尔型

参数单位:

取值范围

  • on:表示允许优化器对update语句生成stream计划。
  • off:表示优化器对update语句仅能生成非stream计划。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_stream_operator

参数说明:控制优化器对stream的使用。当enable_stream_operator参数关闭时,会有大量关于计划不能下推的日志记录到日志文件中。如果用户不需要这些日志内容,建议用户在enable_stream_operator参数关闭时,也同时关闭enable_unshipping_log参数。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。
默认值
  • 独立部署:off

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

enable_stream_recursive

参数说明:控制是否将with-recursive关联查询下推DN分布式执行。

参数类型:布尔型

参数单位:

取值范围

  • on:表示支持使用with-recursive关联查询下推DN分布式执行。
  • off:表示不支持使用with_recursive下推。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

max_recursive_times

参数说明:控制with recursive的最大迭代次数。

参数类型:整型

参数单位:

取值范围:0~2147483647

默认值:200

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:对于with recursive语句,此参数用于避免陷入死循环,层次查询可用nocycle跳出循环。若要更改,请在理解参数含义后谨慎操作,避免因误操作产生意料之外的风险。

enable_broadcast

参数说明:控制优化器在stream代价估算时对broadcast分布方式的使用。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_change_hjcost

参数说明:控制优化器在Hash Join代价估算路径选择时,是否使用将内表运行时代价排除在Hash Join节点运行时代价外的估算方式。如果使用,则有利于选择条数少,但运行代价大的表做内表。

参数类型:布尔型

参数单位:

取值范围

  • on:表示使用。
  • off:表示不使用。

默认值:off

设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

best_agg_plan

参数说明:本参数用于控制优化器生成hashagg计划的类型。对于stream下的Agg操作,优化器会生成三种计划:
  • hashagg+gather(redistribute)+hashagg。
  • redistribute+hashagg(+gather)。
  • hashagg+redistribute+hashagg(+gather)。

参数类型:整型

参数单位:

取值范围:0 ~ 3

  • 0:优化器会根据以上三种计划的估算cost选择最优的一种计划生成。
  • 1:强制生成第一种计划。
  • 2:如果group by列可以重分布,强制生成第二种计划,否则生成第一种计划。
  • 3:如果group by列可以重分布,强制生成第三种计划,否则生成第一种计划。

默认值:0

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

agg_redistribute_enhancement

参数说明:进行聚集操作时,如果包含多个group by列且均不为分布列,进行重分布时会选择某一group by列进行重分布。本参数控制选择重分布列的策略。

参数类型:布尔型

参数单位:

取值范围

  • on:表示会选择估算distinct值最多的一个可重分布列作为重分布列。
  • off:表示会选择第一个可重分布列作为重分布列。

默认值:off

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_absolute_tablespace

参数说明:控制表空间是否可以使用绝对路径。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示可以使用绝对路径。
  • off:表示不可以使用绝对路径。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_valuepartition_pruning

参数说明:是否对DFS分区表进行静态/动态优化。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示对DFS分区表进行静态/动态优化。
  • off:表示不对DFS分区表进行静态/动态优化。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

expected_computing_nodegroup

参数说明:标识选定的计算Node Group模式或目标计算Node Group。Node Group目前为内部机制,用户无需设置。共四种计算Node Group模式,用于关联操作和聚集操作时选定计算Node Group。在每一种模式中,优化器有针对性地选定几个候选计算Node Group,然后根据代价,从中为当前算子挑选最佳计算Node Group。

参数类型:字符串

参数单位:

取值范围

  • optimal:候选计算Node Group列表包含算子操作对象所在的Node Group和由当前用户具有COMPUTE权限的所有Node Group包含的所有DN构成的Node Group。
  • query:候选计算Node Group列表包含算子操作对象所在的Node Group和由当前查询涉及的所有基表所在Node Group包含的所有DN构成的Node Group。
  • Node Group名(enable_nodegroup_debug被设置为off):候选计算Node Group列表包含算子操作对象所在的Node Group和该指定的Node Group。
  • Node Group名(enable_nodegroup_debug被设置为on):候选计算Node Group为指定的Node Group。

默认值:query

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_nodegroup_debug

参数说明:控制优化器在多Node Group环境下,是否使用强制弹性计算。Node Group目前为内部机制,用户无需设置。该参数只在expected_computing_nodegroup被设置为具体Node Group时生效。

参数类型:布尔型

参数单位:

取值范围

  • on:表示强制将计算弹性到expected_computing_nodegroup所指定的Node Group进行计算。
  • off:表示不强制使用某个Node Group进行计算。

默认值:off

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_default_index_deduplication

参数说明:设置btree索引默认情况下是否对键值重复的元组进行去重压缩。去重压缩功能对主键索引和唯一索引不生效。在重复键值的索引较多时,去重压缩功能可以有效降低索引占用空间。非唯一索引且索引键值重复度很低或者唯一的场景,去重压缩功能会使索引插入性能小幅度劣化。若创建索引时带有with (deduplication=on/off)语法时,优先根据deduplication参数决定该索引是否使用去重压缩功能。

参数类型:布尔型

参数单位:

取值范围

  • off:表示btree索引默认关闭索引去重压缩功能。
  • on:表示btree索引默认开启索引去重压缩功能。

默认值:off

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_expr_fusion

参数说明:控制SRF、表达式展平、取消集中式Seq Scan投影、共享聚合函数的转移状态和Step步数优化特性的开关。

参数类型:布尔型

参数单位:

取值范围

  • on:表示同时启用SRF、表达式展平、取消集中式Seq Scan投影、共享聚合函数的转移状态和Step步数优化特性。
  • off:表示关闭本功能。

默认值:off

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

说明:

SRF只支持query_dop=1的场景。

stream_multiple

参数说明:设置优化器计算Stream算子开销时的加权。在原代价模型的基础上,最终Stream代价将被乘以此加权参数。

须知:

此参数仅对Redistribute和Broadcast类型的Stream有效。

参数类型:浮点型

参数单位:

取值范围:0~DBL_MAX

默认值:1

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

qrw_inlist2join_optmode

参数说明:控制是否使用inlist-to-join查询重写。

参数类型:字符串

参数单位:

取值范围

  • disable:关闭inlist2join查询重写。
  • cost_base:基于代价的inlist2join查询重写。
  • rule_base:基于规则的inlist2join查询重写,即强制使用inlist2join查询重写。
  • 任意正整数(1~2147483647):inlist2join查询重写阈值,即list内元素个数大于该阈值,进行inlist2join查询重写。

默认值:cost_base

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

skew_option

参数说明:控制是否使用优化策略。

参数类型:枚举类型

参数单位:

取值范围:off、normal、lazy

  • off:关闭策略。
  • normal:采用激进策略。对于不确定是否出现倾斜的场景,认为存在倾斜,并进行相应优化。
  • lazy:采用保守策略。对于不确定是否出现倾斜场景,认为不存在倾斜,不进行优化。

默认值:normal

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_dngather

参数说明:控制是否把满足阈值的Stream计划收敛到单个DN进行计算,减少计划中的Stream节点个数。

参数类型:布尔型

参数单位:

取值范围

  • on:表示打开。
  • off:表示关闭。

默认值:off

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

dngather_min_rows

参数说明:控制dngather的行数阈值,小于等于此值可以被收敛到单DN计算,前提必须打开enable_dngather。

参数类型:浮点型

参数单位:

取值范围:-1 ~ DBL_MAX

默认值:500.0

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

cost_weight_index

参数说明:设置index_scan的代价权重。

参数类型:浮点型

参数单位:

取值范围:1e-10 ~ 1e+10

默认值:1

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

default_limit_rows

参数说明:设置生成genericplan的缺省limit估算行数。此参数设置为非负数时表示直接将设置的值作为估算limit的行数,设置为负数时表示使用百分比的形式设置默认的估算值,负数转换为默认百分比,即-5代表5%。

参数类型:浮点型

参数单位:

取值范围:-100 ~ DBL_MAX

默认值:-10

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enforce_a_behavior

参数说明:控制正则表达式的规则匹配模式。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示正则表达式采用A格式的匹配规则。
  • off:表示正则表达式采用POSIX格式的匹配规则。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

check_implicit_conversions

参数说明:控制对查询中有隐式类型转换的索引列是否会生成候选索引路径进行检查。关于该参数的使用场景请参见《开发指南》中“SQL调优指南 > 检查隐式转换的性能问题”章节。

参数类型:布尔型

参数单位:

取值范围

  • on:表示对查询中有隐式类型转换的索引列会生成候选索引路径进行检查。
  • off:表示不进行相关检查。

默认值:off

须知:

将该参数设置为on时,需要同时将参数enable_fast_query_shipping设置为off,检查索引列的隐式数据类型转换的识别机制才会生效。

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_opfusion_reuse

参数说明:控制复用opfusion obj内存特性的开关。

参数类型:布尔型

参数单位:

取值范围

  • on:表示在满足条件情况下,复用opfusion obj内存。
  • off:表示关闭本功能。

默认值:on

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

enable_iud_fusion

参数说明:控制IUD语句优化特性的开关。

参数类型:布尔型

参数单位:

取值范围

  • on:表示对输入进行类型转换时做优化处理。
  • off:表示关闭本功能。

默认值:off

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容