初始化节点时每个节点时候观察estate->es_tupleTable

   日期:2020-09-06     浏览:95    评论:0    
核心提示:文章目录初始化节点时每个节点时候观察estate->es_tupleTable初始化节点时每个节点时候观察estate->es_tupleTableselect test1.id1,test1.id1 from test1 inner join test2 on test1.id1=test2.id3; 我设置了2个断点ExecInitNestLoopExecInitSeqScan 结果如下先进入ExecInitSeqScan其实是先进入ExecInitNest

文章目录

  • 初始化节点时每个节点时候观察estate->es_tupleTable

初始化节点时每个节点时候观察estate->es_tupleTable

select test1.id1,test1.id1 from test1 inner join test2 on test1.id1=test2.id3;

  • 我设置了2个断点

ExecInitNestLoop
ExecInitSeqScan

  • 结果如下

  • 先进入ExecInitSeqScan

    • 其实是先进入ExecInitNestLoop
  • 然后ExecInitSeqScan这个函数把estate->es_tupleTable

    • 这里增加了两个slot,用于放置ScanTupleSlot和ResultTupleSlot
  • 另一个ExecInitSeqScan也增加两个

    • 其实并不是这样,另一个居然是物化节点
  • 查询计划显示如下



postgres=# explain select test1.id1 from test1 ,test2 where test1.id1=test2.id3; 
                             QUERY PLAN                              
---------------------------------------------------------------------
 Nested Loop  (cost=0.00..76684.85 rows=25538 width=4)
   Join Filter: (test1.id1 = test2.id3)
   ->  Seq Scan on test1  (cost=0.00..32.60 rows=2260 width=4)
   ->  Materialize  (cost=0.00..43.90 rows=2260 width=4)
         ->  Seq Scan on test2  (cost=0.00..32.60 rows=2260 width=4)
(5 rows)



print(length(estate->es_tupleTable))

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服