认证培训专区
学习笔记
文章

在GBase 8c中,一条SQL语句的生命周期是怎样的呢?

发表于2026-06-16 14:37:3835次浏览10个评论

       SQL语句是客户端从服务端数据库中增、删、改、查数据的核心语言,SQL语言也是有生命周期的,从一条SQL语句到返回执行结果,这个过程姑且称之为一条SQL语句的生命周期。这个过程大致如下:SQL 文本 → 词法/语法解析 → 语义检查 → 查询重写/优化 → 执行计划生成 → 执行引擎 → 返回结果,具体理解如下:

一、SQL 文本

select * from t1 where id1 = 1; 
select * from t1,t2 where t1.id1=t2.id1;
select * from t1,t2 where t1.id1 = t2.id2;
select * from t1,t2 where t1.id2 = t2.id2;	

二、 词法/语法解析

当写错某个关键字,例如from写成了form,GBase会提示错误,也意味着对SQL语句进行了词法、关键字进行了解析检查。

例如:select * form t1,t2 where t1.id1=t2.id1;    #错误词法

三、语义检查

当词法正确,语义有问题时,也会给出错误提示,检查了语义。

例如:select where t1.id1=t2.id1 * form t1,t2 ;    #关键词顺序错误,语义有问题。

四、查询重写/优化(CBO)

对SQL语句所待选执行路径进行代价估算,从中选择代价最低的执行路径作,为最终的执行计划,简而言之就是根据代价的值进行查询,选择代价最低的。

五、执行计划生成

explain关键字非常有用,可以看到具体的执行计划,为后期SQL语句优化提供了依据,下面SQL语句使用了GBase的执行计划类型中的Stream,使用了:gather、broadcast算子。

六、执行引擎

GBase的引擎有行、列、内存三种执行引擎,本例子用的是行存。

七、返回结果

经过前面的步骤,最后返回执行结果。这样一条SQL的生命周期就结束了(个人理解,请大神多指正)。

最后,我想说的是这只是我个人的理解,比较浅显,还请各位大神多指正。

 

 

评论

登录后才可以发表评论
GBase用户50900发表于 1个月前
感谢分享,非常有帮助。
GBase用户51966发表于 1个月前
总结得很到位,学习。
GBase用户51511发表于 1个月前
写得真不错,赞一个!
佛洛伊得发表于 1个月前
干货满满,感谢楼主分享。
GBase用户51510发表于 1个月前
分析得很透彻,学习了。
塔山发表于 1个月前
非常实用的内容,收藏了。
一个老汉发表于 1个月前
好文章,支持一下!
用户头像
大力发表于 1个月前
感谢分享,非常有帮助。
gbase0001发表于 1个月前
感谢分享,学习了。
GBase用户51829发表于 1个月前
分享的很详细,受益匪浅,已收藏