hillpig的个人博客分享 http://blog.sciencenet.cn/u/hillpig 畅想ing,思考ing,前行ing Email:bluevaley@gmail.com

博文

带inner join的group by 语句从parsetree到portal全过程内存结构

已有 4747 次阅读 2010-8-13 01:46 |个人分类:postgresql|系统分类:科研笔记|关键词:学者| group, parsetree, join, Portal, inner

上次写完了最简单的group by语句,参看:group by 语句从parsetree到portal全过程内存结构
这次朝山前再推一步:写写带inner join的group by 语句从parsetree到portal全过程内存结构。
先定义我们的表,这回数据表稍微比原先的复杂些:
CREATE TABLE house
(
 hid integer NOT NULL,
 bedrooms integer,
 "location" geometry,   //这里用到了POSTGIS里中的geometry类型,读者当成一般类型好了,关系不大
 CONSTRAINT pk_house PRIMARY KEY (hid),
);
CREATE TABLE sales
(
 sid integer NOT NULL,
 hid integer,
 price integer,
 "year" integer,
 CONSTRAINT pk_sales PRIMARY KEY (sid),
 CONSTRAINT fk_sales FOREIGN KEY (hid)   REFERENCES house (hid)
);
执行
select sum(house.bedrooms),st_astext(st_convexhull(st_collect(house.location))),sum(sales.price)
from house,sales
where house.hid = sales.hid
group by house.location;

我们来分析分析。
1.parsetree
debug得到的parsetree list如下:
由于debug信息太长,我放到这里了,有兴趣的可以仔细看看。
看起来很吓人,实际上很简单,图示如下:

其中用到的简化的图形符号为:


2.Querytree
可以点击这里查看日志记录的query结构。
这样,我们可以得到对应的Query tree如下:


3.Plantree
首先看看日志里的plan是什么样子,我存到了这里,很长,是吧,不用怕,我们先来看看图:

更清晰的图,可以从这里下载。
4.Portal中用到的数据结构
稍等。


加我私人微信,交流技术。





https://m.sciencenet.cn/blog-419883-352486.html

上一篇:The Thorn Birds
下一篇:读《吴法宪回忆录》

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-1 19:17

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部