杨向博-pg_hint_plan技术内幕解锁hint优化的核心原理

3.0 2025-05-13 67 0 7238 KB 50 页 PDF
侵权投诉
杨向博-pg_hint_plan技术内幕解锁hint优化的核心原理
杨向博-pg_hint_plan技术内幕解锁hint优化的核心原理
杨向博-pg_hint_plan技术内幕解锁hint优化的核心原理
摘要:

/2025.01.04/pg_hint_plan技术内幕--解锁hint优化的核心原理杨向博PostgreSQL ACEhint优化的必要性为何选择pg_hint_plan内核原理揭秘pg_hint_plan的工作机制总结与展望pg_hint_plan及执行计划的未来CONTENThint优化的必要性/2025.01.04/hint优化的必要性CBO优化器避免不了cost预估偏差index scan run_cost:对于统计信息不准 -->收集统计信息对于计算公式导致的偏差 -->guc修正cost(不够灵活)COST预估 = 1.统计信息 && 2.计算公式/2025.01.04/丰富的hint类型,灵活地与SQL相结合hint优化的必要性内核原理揭秘/2025.01.04/Øpg_hint_plan配置在shared_preload_libraries参数中,Postmaster主进程起动时会加载对应的so,并注册_PG_init函数中的自定义参数以及hook函数。Ø当使用hint时,是通过hook函数修改plantree来改变执行计划。接下来我们将主要分析scan method、join method、join order内核原理揭秘--工作机制/2025.01.04/在讲具体hint之前,介绍下set guc影响执行计划的原理。其实在内核中,是利用disable_cost来调整cost的计算。在costsize.c中,可以看到所有method对应的cost计算逻辑。Costdisable_cost = 1.0e10;以set enable_indexscan to off 为例:在cost_index中当enable_indexscan为false时startup_cost += disable_cost(10000000000)这样得到该indexscan的startup_cost会很大在后续优化器计算最小选择路径时,当前indexscan会被排除内核原理揭秘--disable_cost/2025.01.04/以IndexScan(table[ index...])为例:在set_rel_pathlist时进入hook,pg_hint_plan处理rel的indexlist,只保留hint中指定的index,从list中delete其他un

展开>> 收起<<
杨向博-pg_hint_plan技术内幕解锁hint优化的核心原理

共 50 页,预览3页

还剩47页未读, 继续阅读

杨向博-pg_hint_plan技术内幕解锁hint优化的核心原理
杨向博-pg_hint_plan技术内幕解锁hint优化的核心原理
杨向博-pg_hint_plan技术内幕解锁hint优化的核心原理
声明:企商查报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
作者: 分类:机构报告 属性:50 页 大小:7238 KB 格式:PDF 时间:2025-05-13

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 3
客服
关注