2023-04-17 monetdb-聚合分组-分析

该博客详细分析了MonetDB数据库在执行聚合分组操作时的内部机制,包括DML操作、TPCH数据集的使用、查询SQL及执行日志。重点探讨了group by操作的执行过程,指出在分组时每次只运算一个属性,并逐步结合形成最终分组结果。同时,说明了聚合运算如count(1)是在分组后独立进行的两个阶段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:

分析monetdb的聚合分组的实现

DML

生成TPCH的表结构和插入数据

2023-04-04 monetdb-导入tpch数据_禅定悟世的博客-优快云博客

bash  ./tpch_build.sh -s 0.001 -f /dbfarm

查询SQL

select count(1) from lineitem group by l_quantity,l_shipinstruct,l_suppkey  limit 10 ;

执行分析

执行日志


2023-04-17 13:51:08    M_DEBUG ALGO     client1              monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling calc.+
2023-04-17 13:51:08    M_DEBUG ALGO     client1              monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling calc.-
2023-04-17 13:51:08    M_DEBUG ALGO     client1              monetdb5/mal/mal_interpreter.c:672             runMALsequence       calling querylog.define
2023-04-17 13:51:08    M_DEBUG ALGO     client1              monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling language.dataflow
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker17        monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling bat.pack
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker27        monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling bat.pack
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker17        gdk/gdk_bat.c:296                              COLnew_intern        -> tmp_631#0@0[str]TESRN
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker21        monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling bat.pack
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker27        gdk/gdk_bat.c:296                              COLnew_intern        -> tmp_663#0@0[str]TESRN
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker19        monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling bat.pack
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker21        gdk/gdk_bat.c:296                              COLnew_intern        -> tmp_634#0@0[int]TSRN
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker29        monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling sql.mvc
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker28        monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling bat.pack
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker29        monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling sql.tid
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker28        gdk/gdk_bat.c:296                              COLnew_intern        -> tmp_641#0@0[int]TSRN
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker29        gdk/gdk_bat.c:296                              COLnew_intern        -> tmp_621#0@0[void]TSRK
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker29        gdk/gdk_bat.c:328                              BATdense             0,0,6005-> tmp_621#6005@0[void]TDSKN
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker28        monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling sql.bind
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker13        monetdb5/mal/mal_interpreter.c:644             runMALsequence       calling sql.bind
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker28        gdk/gdk_align.c:154                            VIEWcreate           tmp_515#6005@0[int]P -> tmp_712#6005@0[int]V
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker28        gdk/gdk_batop.c:1903                           BATslice             b=tmp_515#6005@0[int]P,lo=0,hi=6005 -> tmp_712#6005@0[int]V
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker13        gdk/gdk_align.c:154                            VIEWcreate           tmp_517#6005@0[lng]P -> tmp_657#6005@0[lng]V
2023-04-17 13:51:08    M_DEBUG ALGO     DFLOWworker19        gdk/gdk_bat.c:296                          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟世者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值