2023-02-07 查询优化器gporca-调试追踪记录

文章详细介绍了如何使用gdb调试gporca查询优化器的执行过程,通过在CTask::Execute()设置断点,展示了一条从PvExec到CAutoTaskProxy::Execute的调用栈轨迹,揭示了gporca内部的工作机制。

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

摘要:

查询优化器gporca-调试追踪记录

代码仓库:

https://github.com/adofsauron/gporca-dev

https://github.com/greenplum-db/gporca

调试方式:

gdb ./server/gporca_test

b CTask::Execute()

调用流程记录:

(gdb) bt
#0  PvExec (pv=0x7fffffffe200) at /root/work/gporca-dev/gporca/server/src/startup/main.cpp:331
#1  0x00007ffff1942df0 in gpos::CTask::Execute (this=0x555555930a30) at /root/work/gporca-dev/gporca/libgpos/src/task/CTask.cpp:130
#2  0x00007ffff19459fb in gpos::CWorker::Execute (this=0x7fffffffe140, task=0x555555930a30) at /root/work/gporca-dev/gporca/libgpos/src/task/CWorker.cpp:81
#3  0x00007ffff19410e9 in gpos::CAutoTaskProxy::Execute (this=0x7fffffffe170, task=0x555555930a30) at /root/work/gporca-dev/gporca/libgpos/src/task/CAutoTaskProxy.cpp:286
#4  0x00007ffff192441d in gpos_exec (params=0x7fffffffe230) at /root/work/gporca-dev/gporca/libgpos/src/_api.cpp:246
#5  0x00005555555df0f9 in main (iArgs=3, rgszArgs=0x7fffffffe378) at /root/work/gporca-dev/gporca/server/src/startup/main.cpp:433

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

悟世者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值