这篇文章主要介绍“PostgreSQL中make_rel_from_joinlist函数分析”,在日常操作中,相信很多人在PostgreSQL中make_rel_from_joinlist函数分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法免费主机域名,希望对大家解答”PostgreSQL中make_rel_from_joinlist函数分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!make_rel_from_joinlist函数根据连接关系链表(joinlist)通过外部算法(钩子函数)/遗传算法/动态规划算法构建连接路径,其中joinlist链表在主函数中已通过调用deconstruct_jointree函数生成.
动态规划算法的实现standard_join_search函数以及遗传算法在后续章节再行介绍.测试脚本以及执行计划如下:启动gdb跟踪进入make_rel_from_joinlist函数,查看joinlist,链表中的Node为RangeTblRef,rindex分别是1/3/4链表中的Node个数为3,levels_needed=3遍历链表,构造RelOptInfo,添加到initial_rels中完成遍历后,开始构造连接路径.
遗传算法的rels阈值为12(通过GUC参数配置)进入函数standard_join_search开始构造2->N个item对应的rel链表调用函数join_search_one_level,查看root->join_rel_level[j]查看链表中的RelOptInfo查看RelOptInfo中的relids
通过relids可知,第一个RelOptInfo是1/3号rel连接生成的Relation,第二个RelOptInfo是3/4号rel连接生成的Relation查看第一个RelOptInfo中的pathlist,该链表有2个Node,类型均为T_NestPath(嵌套连接),总成本分别是28.69和4308.57查看第二个RelOpt免费主机域名Info中的pathlist,只有1个Node,类型为T_NestPath(嵌套连接),总成本为103.49通过set_cheapest函数设置成本最低的访问路径,结果存储在cheapest_startup_path和cheapest_total_path中继续循环,这时候lev=3得到3张表连接的final_rel查看pathlist,只有1个元素,类型为NestPath,该访问路径成本为111.89获得最终结果到此,关于“PostgreSQL中make_rel_from_joinlist函数分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注云技术网站,小编会继续努力为大家带来更多实用的文章!
相关推荐: 怎么用mysqlbinlog做基于时间点的数据恢复
这篇文章将为大家详细讲解有关怎么用mysqlbinlog做基于时间点的数据恢复,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 mysql> show databases;+——————–+| …