这篇文章给大家分享的是有关PostgreSQL如何为append relation构建访问路径的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。AppendRelInfo
当我们将可继承表(分区表)或UNION-ALL子查询展开为“追加关系”(本质上是子RTE的链表)时,为每个子RTE构建一个AppendRelInfo。RelOptInfo
规划器/优化器使用的关系信息结构体
参见PostgreSQL 源码解读(99)- 分区表#5(数据查询路由#2-RelOptInfo数据结构)set_rel_pathlist函数为基础关系构建访问路径.测试脚本如下启动gdb,设置断点通过rte->inh判断是否分区表或者UNI免费主机域名ON ALL进入set_append_rel_pathlist函数遍历子关系获取AppendRelInfo,判断父关系是否正在处理的父关系获取子关系的相关信息,递归调用set_rel_pathlist如为虚拟关系,则忽略之该子关系不是虚拟关系,继续处理,加入到rel->partitioned_child_rels和live_childrels链表中对于虚拟子关系(上一节介绍的被裁剪的分区),直接跳过设置断点,进入add_paths_to_append_rel函数输入参数,其中rel是父关系,live_childrels是经裁剪后仍存活的分区(子关系)初始化变量构建partitioned_rels链表开始遍历live_childrels,对于每一个非虚拟子关系,记录成本最低的访问路径.
如果子关系存在非参数化的总成本最低的访问路径,添加此路径到我们为父关系构建的非参数化的Append访问路径中.同样的思路,处理并行处理中的部分计划同样的,处理并行append混合并行/非并行访问路径收集子关系所有可用的排序和参数化路径链表.继续下一个子关系,完成处理如存在子关系的非参数化访问路径,构建未排序/未参数化的Append访问路径.尝试未排序/未参数化的部分Append访问路径.如可能,构建parallel-aware访问路径.使用混合的部分和非部分并行的append.基于收集的子路径键,构建非参数化的MergeAppend访问路径完成调用结束调用感谢各位的阅读!关于“PostgreSQL如何为append relat免费主机域名ion构建访问路径”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
这篇文章将为大家详细讲解有关数据库中因删除归档日志导致备份失败怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 先说明一下,目前碰到两种情况因为归档日志被删除,导致备份失败。第一种情况,是普遍遇到的因为磁盘空间不够将归档…