第03课:调整执行计划

本文介绍了如何影响 PostgreSQL 的优化器生成执行计划,通过设置不同的 GUC 参数来调整扫描路径、连接路径、聚集与分组的执行计划。讨论了禁用不同扫描方式如 Seq Scan、Index Scan 和 Bitmap Scan 对执行计划的影响,以及连接算子如嵌套循环、哈希连接和归并连接的选择。同时,还探讨了并行执行计划的调整和限制。

通过 EXPLAIN 查看了具体的执行计划之后,我们还能尝试影响优化器,让优化器生成我们想要的执行计划。不过,PostgreSQL 没有像 Oracle 那样通过在 SQL 语句中增加 HINT 信息的方式来影响执行计划的生成。但它也提供了一系列的 GUC 参数,比如在前面的课程中曾使用 enable_material 参数来尝试禁用 material,而且确实达到了禁用的效果。PostgreSQL 针对大部分算子都给出了具体的 GUC 参数,下面先把这些 GUC 参数列出来:

  • enable_bitmapscan
  • enable_gathermerge
  • enable_hashagg
  • enable_hashjoin
  • enable_indexonlyscan
  • enable_indexscan
  • enable_material
  • enable_mergejoin
  • enable_nestloop
  • enable_parallel_append
  • enable_parallel_hash
  • enable_partitionwise_join
  • enable_seqscan
  • enable_sort
  • enable_tidscan

每个 GUC 参数都可以通过下面的方式来设置:

SET GUC_NAME = ON/OFF;

扫描路径的调整

可以先来看一

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值