网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务

其他优化器选项

更新时间:2024-11-01 GMT+08:00
分享

enable_fast_query_shipping

参数说明:控制查询优化器是否使用分布式框架。

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

取值范围:布尔型

  • on表示执行计划在CN和DN上各自生成。
  • off表示使用分布式框架,即执行计划在CN上生成,然后发送到DN中执行。

默认值:on

enable_trigger_shipping

参数说明:控制触发器场景是否允许将触发器下推到DN执行。

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

取值范围:布尔型

  • on表示允许将触发器下推到DN执行。
  • off表示不允许将触发器下推到DN执行,在CN执行。

默认值:on

enable_remotejoin

参数说明:设置是否允许连接操作计划下推到DN执行。

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

取值范围:布尔型

  • on表示允许连接操作计划下推到DN执行。
  • off表示不允许连接操作计划下推到DN执行。

默认值:on

enable_remotegroup

参数说明:设置是否允许group by与aggregates执行计划下推到DN执行。

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

取值范围:布尔型

  • on表示允许group by与aggregates执行计划下推到DN执行。
  • off表示不允许group by与aggregates执行计划下推到DN执行。

默认值:on

enable_remotelimit

参数说明:设置是否允许LIMIT子句执行计划下推到DN执行。

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

取值范围:布尔型

  • on表示允许LIMIT子句执行计划下推到DN执行。
  • off表示不允许LIMIT子句执行计划下推到DN执行。

默认值:on

enable_remotesort

参数说明:设置是否允许ORDER BY子句操作计划下推到DN执行。

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

取值范围:布尔型

  • on表示允许ORDER BY子句操作计划下推到DN执行。
  • off表示不允许ORDER BY子句操作计划下推到DN执行。

默认值:on

enable_csqual_pushdown

参数说明:进行查询时,是否要将过滤条件下推,进行Rough Check。

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

取值范围:布尔型

  • on表示进行查询时,要将过滤条件下推,进行Rough Check。
  • off表示进行查询时,不要将过滤条件下推,进行Rough Check。

默认值:on

explain_dna_file

参数说明:指定explain_perf_mode为run,导出的csv信息的目标文件。

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

须知:

这个参数的取值必须是绝对路径加上.csv格式的文件名。

取值范围:字符串

默认值:

analysis_options

参数说明:通过开启对应选项中所对应的功能选项使用相应的定位功能,包括数据校验,性能统计等,参见取值范围中的选项说明。

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

取值范围:字符串

  • HASH_CONFLICT表示在DN进程的pg_log目录中的log日志中显示hash表的统计信息,包括hash表大小,hash链长,hash冲突情况。
  • STREAM_DATA_CHECK表示对网络传输前后的数据进行CRC校验。

默认值:ALL,on(),off(HASH_CONFLICT,STREAM_DATA_CHECK),不开启任何定位功能。

explain_perf_mode

参数说明:此参数用来指定explain的显示格式。

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

取值范围:normal、pretty、summary、run

  • normal:代表使用默认的打印格式。
  • pretty:代表使用GaussDB改进后的新显示格式。新的格式层次清晰,计划包含了plan node id,性能分析简单直接。
  • summary:是在pretty的基础上增加了对打印信息的分析。
  • run:在summary的基础上,将统计的信息输出到csv格式的文件中,以便于进一步分析。

默认值:pretty

说明:

pretty模式当前只支持包含stream算子的计划,不支持下发语句到DN节点的计划。因此显示格式会受enable_stream_operator参数影响,当enable_stream_operator设置为off时无法生成包含stream算子的计划。

cost_param

参数说明:该参数用于控制在特定的客户场景中,使用不同的估算方法使得估算值与真实值更接近。此参数可以同时控制多种方法,与某一方法对应的位做与操作,不为0表示该方法被选择。
  • 当cost_param & 1不为0,表示对于求不等值连接选择率时选择一种改良机制,此方法在自连接(两个相同的表之间连接)的估算中更加准确。当前版本已弃用cost_param & 1不为0时的路径,默认选择更优的估算公式。
  • 当cost_param & 2不为0,表示求多个过滤条件(Filter)的选择率时,选择最小的作为总的选择率,而非两者乘积,此方法在过滤条件的列之间关联性较强时估算更加准确。
  • 当cost_param & 4不为0,表示在进行stream节点估算时,选用调试模型,该模型不推荐用户使用。

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

取值范围:整型,0~2147483647‬

默认值:0

enable_partitionwise

参数说明:分区表连接操作是否选择智能算法。

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

取值范围:布尔型

  • on表示选择智能算法。
  • off表示不选择智能算法。

默认值:off

enable_fast_numeric

参数说明:标识是否开启Numeric类型数据运算优化。Numeric数据运算是较为耗时的操作之一,通过将Numeric转化为int64/int128类型,提高Numeric运算的性能。

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

取值范围:布尔型

  • on/true表示开启Numeric优化。
  • off/false表示关闭Numeric优化。

默认值:on

rewrite_rule

参数说明:标识已开启的可选查询重写规则。有部分查询重写规则是可选的,开启它们并不能总是对查询效率有提升效果。在特定的客户场景中,通过此GUC参数对查询重写规则进行设置,使得查询效率最优。

此参数可以控制查询重写规则的组合,比如有多个重写规则:rule1、rule2、rule3、rule4。可以设置:

set rewrite_rule=rule1;          --启用查询重写规则rule1
set rewrite_rule=rule2,rule3;    --启用查询重写规则rule2和rule3
set rewrite_rule=none;           --关闭所有可选查询重写规则

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

取值范围:字符串

  • none:不使用任何可选查询重写规则。
  • lazyagg:使用Lazy Agg查询重写规则(消除子查询中的聚集运算)。
  • magicset:使用Magic Set查询重写规则(将带有聚集算子的子查询提前和主查询进行关联,减少子链接的重复扫描)。
  • partialpush:使用Partial Push查询重写规则(对于不可下推的语句,下推部分子查询到DN执行,剩余不下推的部分在CN执行)。
  • uniquecheck:使用Unique Check查询重写规则(提升目标列中无agg的子查询语句,在执行时检查返回行数是否为1行)。
  • disablerep:使用Disable Replicate查询重写规则(由于复制表提升之后可能劣化,开启此规则之后,禁止复制表的子查询提升)。
  • intargetlist:使用In Target List查询重写规则(提升目标列中的子查询)。
  • predpushnormal:使用Predicate Push查询重写规则(下推谓词条件到子查询中,可能会添加BROADCAST算子来支持分布式执行)。
  • predpushforce:使用Predicate Push查询重写规则(下推谓词条件到子查询中,尽可能的利用索引加速)。
  • predpush:在predpushnormal和predpushforce中根据代价选择最优计划。
  • disable_pullup_expr_sublink:禁止优化器将expr_sublink类型的子连接提升,关于sublink的分类和提升原理详见《开发指南》中“SQL调优指南 > 典型SQL调优点 > 子查询调优”章节。
  • disable_pullup_not_in_sublink:禁止优化器对not in相关的子链接进行提升,关于sublink的分类和提升原理详见《开发指南》中“SQL调优指南 > 典型SQL调优点 > 子查询调优”章节。

  • enable_sublink_pullup_rownum:允许SQL语句中有ROWNUM伪列的情况下优化器进行子链接提升。

默认值:magicset

enable_pbe_optimization

参数说明:设置优化器是否对以PBE(Parse Bind Execute)形式执行的语句进行查询计划的优化。

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

取值范围:布尔型。

  • on表示优化器将优化PBE语句的查询计划。
  • off表示不使用优化。

默认值:on

enable_light_proxy

参数说明:设置优化器是否对简单查询在CN上优化执行,应用端和内核端字符集不匹配时,该参数不生效,建议建库时将字符集设为UTF8。

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

取值范围:布尔型。

  • on表示优化器将优化CN上简单查询的执行。
  • off表示不使用优化。

默认值:on

enable_global_plancache

参数说明:设置是否对PBE查询的执行计划进行缓存共享,开启该功能可以节省高并发下CN和DN上的内存使用。且该参数必须在CN和DN上一致,否则会出现CN下发给DN的报文不匹配从而报错等问题。

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

在打开enable_global_plancache的情况下,为保证GPC生效,默认local_syscache_threshold不小于16MB。即如当前local_syscache_threshold小于16MB,则设置为16MB,如大于16MB,则不改变。

取值范围:布尔型。

  • on表示对PBE查询的执行计划进行缓存共享。
  • off表示不共享。

默认值:off

gpc_clean_timeout

参数说明:开启enable_global_plancache的情况下,如果共享计划列表里的计划超过gpc_clean_timeout的时间没有被使用,则会被清理掉。本参数用于控制没有使用的共享计划的保留时间。

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

取值范围:整型,300~86400,单位为秒

默认值:1800,即30min

enable_gpc_grayrelease_mode

参数说明:分布式集群下,开启GPC需要重启集群。如果需要在不重启集群的情况下开启GPC,需要用enable_gpc_grayrelease_mode控制滚动开启GPC或关闭GPC。

分布式集群上操作方式。

开启GPC:

1、在所有DN节点开启enable_gpc_grayrelease_mode。

2、在所有CN节点开启enable_gpc_grayrelease_mode。

3、开启GPC参数,由于GPC是POSTMASTER参数,需要先reload参数,之后轮询kill节点,使重新拉起的节点上GPC生效。

关闭GPC:

1、首先确定enable_gpc_grayrelease_mode 是on的状态,reload关闭GPC参数,然后轮询kill节点,使重新拉起的节点上GPC生效。

2、在所有CN节点关闭enable_gpc_grayrelease_mode。

3、在所有DN节点关闭enable_gpc_grayrelease_mode。

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

取值范围:布尔型。

  • on
  • off

默认值:off

enable_opfusion

参数说明:控制是否对简单查询进行查询优化。

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

须知:

该开关是优化DN的查询性能,可以设置max_datanode_for_plan查看一个查询DN的执行计划,如果DN的执行计划中带有[Bypass]标识则代表该查询在该DN可以查询优化。

简单查询限制如下:
  • 只支持indexscan和indexonlyscan,且全部WHERE语句的过滤条件都在索引上。
  • 只支持单表增删改查,不支持join、using。
  • 只支持行存表,不支持分区表,表不支持有触发器。
  • 不支持active sql、QPS等信息统计特性。
  • 不支持正在扩容和缩容的表。
  • 不支持查询或者修改系统列。
  • 只支持简单SELECT语句,例如:
    SELECT c3 FROM t1 WHERE c1 = ? and c2 =10; 

    仅可以查询目标表的列,c1和c2列为索引列,后边可以是常量或者参数,可以使用 for update。

  • 只支持简单INSERT语句,例如:
    INSERT INTO t1 VALUES (?,10,?); 

    仅支持一个VALUES,VALUES里面的类型可以是常量和参数,不支持returning。

  • 只支持简单DELETE语句,例如:
    DELETE FROM t1 WHERE c1 = ? and c2 = 10;  

    c1和c2列为索引列,后边可以是常量或者参数。

  • 只支持简单UPDATE语句,例如:
    UPDATE t1 SET c3 = c3+? WHERE c1 = ? and c2 = 10; 

    c3列修改的值可以是常量和参数,也可以是一个简单的表达式,c1和c2列为索引列,后边可以是常量或者参数。

取值范围:布尔型

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

默认值:on

sql_beta_feature

参数说明:标识开启的可选SQL引擎Beta特性,其中包括对行数估算、查询等价估算等优化。开启它们可以对特定的场景进行优化,但也可能会导致部分没有被测试覆盖的场景发生性能劣化。在特定的客户场景中,通过此GUC参数对查询重写规则进行设置,使得查询效率最优。

此参数可以控制SQL引擎Beta特性的组合,比如有多个Beta特性:feature1、feature2、feature3、feature4。可以设置:

set sql_beta_feature=feature1;          --启用SQL引擎Beta特性feature1
set sql_beta_feature=feature2,feature3;    --启用SQL引擎Beta特性feature2和feature3
set sql_beta_feature=none;           --关闭所有可选SQL引擎Beta特性

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

取值范围:字符串

  • none:不使用任何Beta优化器特性。
  • sel_semi_poisson:使用泊松分布对等值的半连接和反连接选择率进行校准。
  • sel_expr_instr:使用字符串匹配的行数估算方法对instr(col, 'const') > 0, = 0, = 1进行更准确的估算。
  • param_path_gen:生成更多可能的参数化路径。
  • rand_cost_opt:对小数据量表的随机读取代价进行优化。
  • param_path_opt:利用表的膨胀系数优化索引analyze信息。
  • page_est_opt:优化对表索引analyze信息的relpages估算。
  • no_unique_index_first:关闭主键索引扫描路径优先的优化。
  • join_sel_with_cast_func:估算join行数的时候支持类型转换函数。
  • canonical_pathkey:正则化pathkey生成置前(pathkey:标记数据有序性键值的集合)。
  • index_cost_with_leaf_pages_only:估算索引代价时考虑索引叶子节点。
  • a_style_coerce:开启Decode类型转换规则兼容O,详见《开发指南》中“SQL参考 > 类型转换 > UNION,CASE和相关构造”章节的“对于case,在ORA兼容模式下的处理”。
  • plpgsql_stream_fetchall:在存储过程中for loop或cursor上执行的sql走stream场景下,开启获取所有tuple结果。
  • predpush_same_level:开启predpush hint控制同层参数化路径的功能。
  • disable_bitmap_cost_with_lossy_pages:关闭bitmap路径代价中对lossy pages代价的计算。

默认值:"sel_semi_poisson,sel_expr_instr,rand_cost_opt,param_path_opt,page_est_opt"

table_skewness_warning_threshold

参数说明:设置用于表倾斜告警的阈值。

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

取值范围:浮点型,0~1

默认值:1

table_skewness_warning_rows

参数说明:设置用于表倾斜告警的行数。

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

取值范围:整型,0~2147483647‬

默认值:100000

enable_global_stats

参数说明:标识当前统计信息模式,区别采用全局统计信息收集模式还是单节点统计信息收集模式,默认创建为采用全局统计信息模式。当关闭该参数时,则默认收集集群第一个节点的统计信息,此时可能会影响生成查询计划的质量,但信息收集性能较优,建议谨慎设置。

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

取值范围:布尔型

  • on/true表示全局统计信息。
  • off/false表示单DN统计信息。

默认值:on

default_statistics_target

参数说明:为没有用ALTER TABLE SET STATISTICS设置字段目标的表设置缺省统计目标。影响收集统计信息时的采样行数。

此参数设置为正数时,代表统计信息直方图预期桶的数量,统计信息采样行数为default_statistics_target * 300;为负数时,代表使用百分比的形式设置统计目标,负数转换为对应的百分比,即-5代表5%,采样行数为总行数 * 5%。此参数仅影响统计信息的目标采样行数,实际采样行数还会受到内存参数work_mem的限制。

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

取值范围:整型,-100~10000。

须知:
  • 比默认值大的正数数值增加了ANALYZE所需的时间,但是可能会改善优化器的估计质量。
  • 调整此参数可能存在性能劣化的风险,如果某个查询劣化,可以考虑
    1. 恢复默认的统计信息。
    2. 使用plan hint来调整到之前的查询计划。(详细参见《开发指南》中“SQL调优指南 > 使用Plan Hint 进行调优”章节)
  • 当此guc参数设置为负数时,如果计算的采样样本数大于等于总数据量的2%,且用户表的数据量小于1600000时,ANALYZE所需时间相比guc参数为默认值的时间会有所增加。
  • 当此guc参数设置为负数时,则autoanalyze不生效。

默认值:100

constraint_exclusion

参数说明:控制查询优化器使用表约束查询的优化。

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

取值范围:枚举类型

  • on/true/yes/1表示检查所有表的约束。
  • off/false/no/0表示不检查约束。
  • partition表示只检查继承的子表和UNION ALL子查询。
    须知:

    当constraint_exclusion为on,优化器用查询条件和表的CHECK约束比较,并且在查询条件和约束冲突的时候忽略对表的扫描。

默认值:partition

说明:

目前, constraint_exclusion缺省被打开,通常用来实现表分区。为所有的表打开它时,对于简单的查询强加了额外的规划,并且对简单查询没有什么好处。如果不用分区表,可以关掉它。

cursor_tuple_fraction

参数说明:优化器估计游标获取行数在总行数中的占比。

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

取值范围:浮点型,0.0~1.0。

须知:

比默认值小的值与使用 “fast start” 为游标规划的值相偏离,从而使得前几行恢复的很快而抓取全部的行需要很长的时间。比默认值大的值加大了总的估计的时间。在最大的值1.0处,像正常的查询一样规划游标,只考虑总的估计时间和传送第一行的时间。

默认值:0.1

from_collapse_limit

参数说明:根据生成的FROM列表的项数来判断优化器是否将把子查询合并到上层查询,如果FROM列表项个数小于等于该参数值,优化器会将子查询合并到上层查询。

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

取值范围:整型,1~2147483647‬。

须知:

比默认值小的数值将降低规划时间,但是可能生成差的执行计划。

默认值:8

join_collapse_limit

参数说明:根据得出的列表项数来判断优化器是否执行把除FULL JOIN之外的JOIN构造重写到FROM列表中。

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

取值范围:整型,1~2147483647‬。

须知:
  • 设置为1会避免任何JOIN重排。这样就使得查询中指定的连接顺序就是实际的连接顺序。查询优化器并不是总能选取最优的连接顺序,高级用户可以选择暂时把这个变量设置为1,然后指定它们需要的连接顺序。
  • 比默认值小的数值减少规划时间但也降低了执行计划的质量。

默认值:8

plan_mode_seed

参数说明:该参数为调测参数,目前仅支持OPTIMIZE_PLAN和RANDOM_PLAN两种。其中:OPTIMIZE_PLAN表示通过动态规划算法进行代价估算的最优plan,参数值设置为0;RANDOM_PLAN表示随机生成的plan;如果设置为-1,表示用户不指定随机数的种子标识符seed值,由优化器随机生成[1, 2147483647]范围整型值的随机数,并根据随机数生成随机的执行计划;如果用户指定guc参数值为[1, 2147483647]范围的整型值,表示指定的生成随机数的种子标识符seed,优化器需要根据seed值生成随机的执行计划。

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

取值范围:整型,-1~ 2147483647

默认值:0

须知:
  • 当该参数设置为随机执行计划模式时,优化器会生成不同的随机执行计划,该执行计划可能不是最优计划。因此在随机计划模式下,会对查询性能产生影响,所以建议在升级、扩容、缩容等正常业务操作或运维过程中将该参数保持为默认值0。
  • 当该参数不为0时,查询指定的plan hint不会生效。

enable_random_datanode

参数说明:表示是否允许开启复制表DN随机查找功能,复制表在每个DN存放一份完整数据,随机选取可以缓解节点压力。

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

取值范围:布尔型

  • on表示允许开启复制表DN随机查找功能。
  • off表示不允许开启复制表DN随机查找功能。

默认值:on

hashagg_table_size

参数说明:用于设置执行HASH JOIN操作时HASH表的大小。

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

取值范围:整型,0~1073741823。

默认值:0

enable_bloom_filter

参数说明:标识是否允许使用BloomFilter优化。

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

取值范围:布尔型

  • on表示允许使用BloomFilter优化。
  • off表示不允许使用BloomFilter优化。

默认值:on

enable_extrapolation_stats

参数说明:标识对于日期类型是否允许基于历史统计信息使用推理估算的逻辑。使用该逻辑对于未及时收集统计信息的表可以增大估算准确的可能性,但也存在错误推理导致估算过大的可能性,需要对于日期类型数据定期插入的场景开启此开关。

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

取值范围:布尔型

  • on表示允许基于历史统计信息使用推理估算的逻辑。
  • off表示不允许基于历史统计信息使用推理估算的逻辑。

默认值:off

autoanalyze

参数说明:标识是否允许在生成计划的时候,对于没有统计信息的表进行统计信息自动收集。对于临时表,不支持autoanalyze,如果需要收集统计信息,用户需手动执行analyze操作。如果在auto analyze某个表的过程中数据库发生异常,当数据库正常运行之后再执行语句有可能仍提示需要收集此表的统计信息。此时需要用户对该表手动执行一次analyze操作,以同步统计信息数据。

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

取值范围:布尔型

  • on表示允许自动进行统计信息收集。
  • off表示不允许自动进行统计信息收集。

默认值:off

说明:

该参数与autovacuum线程下的autoanalyze无关。

query_dop

参数说明:用户自定义的查询并行度。该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:整型,-64-64

[1,64]:打开固定SMP功能,系统会使用固定并行度。

0:打开SMP自适应功能,系统会根据资源情况和计划特征动态选取最优并行度。

[-64,-1]:打开SMP自适应功能,并限制自适应选取的最大并行度。

说明:
  • 在开启并行查询后,请保证系统CPU、内存、网络、I/O等资源充足,以达到最佳效果。
  • 为了避免用户设置不合理的过大值造成性能劣化,系统会计算出该DN可用最大CPU核数,并以此来作为query_dop的上限。如果用户设置query_dop超过4并且同时超过该上限,那么系统会重置query_dop为该上限值。

默认值:1

enable_analyze_check

参数说明: 标识是否允许在生成计划的时候,对于在pg_class中显示reltuples和relpages均为0的表,检查该表是否曾进行过统计信息收集。

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

取值范围:布尔型

  • on表示允许检查。
  • off表示不允许检查。

默认值:off

enable_sonic_hashagg

参数说明:标识是否依据规则约束使用基于面向列的hash表设计的Hash Agg算子。

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

取值范围:布尔型

  • on表示在满足约束条件时使用基于面向列的hash表设计的Hash Agg算子。
  • off表示不使用面向列的hash表设计的Hash Agg算子。
说明:
  • 在开启enable_sonic_hashagg,且查询达到约束条件使用基于面向列的hash表设计的Hash Agg算子时,查询对应的Hash Agg算子内存使用通常可获得精简。但对于代码生成技术可获得显著性能提升的场景,对应的算子查询性能可能会出现劣化。
  • 开启enable_sonic_hashagg,且查询达到约束条件使用基于面向列的hash表设计的Hash Agg算子时,在Explain Analyze/Performance的执行计划和执行信息中,算子显示为“Sonic Hash Aggregation”,而未达到该约束条件时,算子名称将显示为“Hash Aggregation”,Explain详解请参见《开发指南》中“SQL调优指南 > SQL执行计划介绍 > 详解”章节。

默认值:on

enable_sonic_hashjoin

参数说明:标识是否依据规则约束使用基于面向列的hash表设计的Hash Join算子。

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

取值范围:布尔型

  • on表示在满足约束条件时使用基于面向列的hash表设计的Hash Join算子。
  • off表示不使用面向列的hash表设计的Hash Join算子。
说明:
  • 当前开关仅适用于Inner Join的场景。
  • 在开启enable_sonic_hashjoin,查询对应的Hash Inner算子内存使用通常可获得精简。但对于代码生成技术可获得显著性能提升的场景,对应的算子查询性能可能会出现劣化。
  • 开启enable_sonic_hashjoin,且查询达到约束条件使用基于面向列的hash表设计的Hash Join算子时,在Explain Analyze/Performance的执行计划和执行信息中,算子显示为“Sonic Hash Join”,而未达到该约束条件时,算子名称将显示为“Hash Join”,Explain详解请参见《开发指南》中“SQL调优指南 > SQL执行计划介绍 > 详解”章节。

默认值:on

enable_sonic_optspill

参数说明:标识是否对面向列的hash表设计的Hash Join算子进行下盘文件数优化。该参数打开时,在Hash Join算子下盘文件较多的时候,下盘文件数不会显著增加。

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

取值范围:布尔型

  • on表示优化面向列的hash表设计的Hash Join算子的下盘文件数。
  • off表示不优化面向列的hash表设计的Hash Join算子的下盘文件数。

默认值:on

plan_cache_mode

参数说明:标识在prepare语句中,选择生成执行计划的策略。

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

取值范围:枚举类型

  • auto表示按照默认的方式选择custom plan或者generic plan。
  • force_generic_plan表示强制走generic plan(软解析)。generic plan是指对于preapre语句生成计划,该计划策略会在执行execute语句的时候把参数bind到plan中,然后执行计划。这种方案的优点是每次执行可以省去重复的优化器开销;缺点是当bind参数字段上数据存在倾斜时该计划可能不是最优的,部分bind参数场景下执行性能较差。
  • force_custom_plan表示强制走custom plan(硬解析)。custom plan是指对于prepare语句,在执行execute的时候,把execute语句中的参数嵌套到语句之后生成的计划。custom plan会根据execute语句中具体的参数生成计划,这种方案的优点是每次都按照具体的参数生成优选计划,执行性能比较好;缺点是每次执行前都需要重新生成计划,存在大量的重复的优化器开销。
说明:

此参数只对prepare语句生效,一般用在prepare语句中参数化字段存在比较严重的数据倾斜的场景下。

默认值:auto

enable_router

参数说明:是否打开手动设置下推节点功能。

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

取值范围:布尔型

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

默认值:off

router

参数说明:用于控制router功能的详细属性,仅在打开enable_router和enable_light_proxy后生效。该参数会根据表的hash分布列,计算给定的分布列在哪个DN上,设置router后将支持的sql下推到该DN上执行。如果设置错了router,可能导致数据存入错误的dn,导致不可预测的问题,需谨慎使用。

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

取值范围:字符串

该参数分为两部分,'schema_name.table_name,"distribute_keys"',其具体含义如下:

  • schema_name.table_name:表示schema名和表名,如不显示设置schema_name,则默认为current_schema。
  • distribute_keys:分布表的所有分布列值,用逗号间隔开,且分布列值的顺序必须和表中分布列顺序一致。

默认值:空

enable_auto_explain

参数说明:控制是否开启自动打印执行计划。该参数是用来定位慢存储过程或慢查询,只对当前连接的CN有效。

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

取值范围:布尔型,on表示开启,off表示关闭。

默认值:off

auto_explain_level

参数说明:控制自动打印执行计划的日志等级。

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

取值范围:枚举型,log或notice,log表示在日志中打印执行计划,notice表示以提示知的形式打印出计划。

默认值:log

auto_explain_log_min_duration

参数说明:控制自动打印执行计划的耗时阈值,整体耗时大于auto_explain_log_min_duration的执行计划才会被打印。

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

取值范围:整型,0~2147483647,单位为毫秒。

  • 设置为0,所有执行过的执行计划都会输出。
  • 设置为3000,单次语句执行耗时超过3000毫秒后所有执行的执行计划会输出。

默认值:0

max_datanode_for_plan

参数说明:生成FQS计划时设置显示DN上执行计划的个数。显示DN上计划的个数由集群中的DN数和该参数值的更小者决定。

对于PBE执行的语句,当前只能显示内核prepare预编译方式生成的计划,不支持显示JDBC预编译方式生成的计划。

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

取值范围:整型,0 ~ 8192

默认值:0

session_sequence_cache

参数说明:在当前会话下,一次性交互申请的sequence数值,会话结束会自动丢弃未用完的值。用户在使用sequence大批量导入数据的时候可以通过调大该参数,提高插入速度,增加高并发性能;用户在高并发单条插入数据的时候,将该参数设置为1,减少了sequence的跳变。如对连续性有强要求,需要在创建sequence的时候指定需要的cache,该参数如果大于cache指定的值会自动失效。

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

取值范围:整型,1 ~ 2147483647。

默认值:10

说明:

默认值为10是高并发场景下,兼顾单条插入和批量插入的性能会有比较好的表现。

提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容