这篇文章主要介绍“PostgreSQL中remove_useless_joins的实现逻辑是怎样的”,在日常操作中,相信很多人在PostgreSQL中remove_useless_joins的实现逻辑是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PostgreSQL中remove_useless_joins的实现逻辑是怎样的”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!query_planner代码片段:PlaceHolderVar
上一小节已介绍过PHInfoSpecialJoinInforemove_useless_joins
清除无用的连接,比如以下的SQL语句:左连接,而且t_免费主机域名dwxx.dwbh唯一,这样的连接是不需要的连接,直接查询t_grxx即可.
从执行计划来看,PG只对t_grxx进行扫描:源代码如下:reduce_unique_semijoins
把可以简化的半连接转化为内连接.
比如以下的SQL语句:由于子查询”select t2.dwbh from t_dwxx t2″的dwbh是PK,子查询提升后,t_grxx的dwbh只对应t_dwxx唯一的一条记录,因此可以把半连接转换为内连接,执行计划如下:跟踪分析:查看SpecialJoinInfo内存结构:内表(innerrel,即t_dwxx)如支持唯一性,则可以考虑把半连接转换为内连接源代码如下:add_placeholders_to_base_rels
把PHV分发到base rels中,代码较为简单到此,关于“PostgreSQL中remove_useless_joins的实现逻辑是怎样的”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注云技术网站,小编会继续努免费主机域名力为大家带来更多实用的文章!
这篇文章将为大家详细讲解有关SQLLDR中怎样CTL文件字段设置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 position 关键字用来指定列的开始和结束位置 position(m:n):指从第 m 个字…