eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« openGauss SQL解析 | Blog首页 | openGauss 高级特性介绍 »

openGauss 数据库执行器概述
modb.pro

文章来源于墨天轮:https://www.modb.pro/db/162042

从客户端发起一条SQL到结果返回给客户端整体的执行流程如下图所示,其中可以看到执行器所处的位置。

示意图1.png

如果把数据库看成一个组织,优化器位于组织最上面,是这个组织的首脑,是发号施令的指令下达机构,执行器位于组织的中间,听从优化器的指令,严格执行优化器给与的计划,将从存储空间中读取的数据进行加工处理最终返回给客户端。

第二章数据库设计中提到了SQL、关系代数之间的联系和转换,同时提到了关系操作符。关系的本质上是元组(表中的每行,即数据库中每条记录)的集合,关系代数实际上是定义为集合上的一系列操作。

执行器接收到的指令就是优化器应对SQL查询而翻译出来的关系代数运算符所组成的执行树。一颗形象化的执行树如下图所示:

示意图2.png

其中每一个方块代表一个具体关系运算代数符,我们称之为算子,同时注意到这里有两个箭头代表的流。其中蓝色的流代表数据流,可以看到数据从叶节点流到根节点;红色的流代表控制流,从根节点向下驱动。这里的驱动是指上层节点调用下层节点函数的数据传送函数,从下层节点要数据。

执行器的整体目标就是在每一个由优化器构建出来的执行树上,通过控制流驱动数据流在执行树上高效的流动,其流动的速度决定了执行器的处理效率。


历史上的今天...
    >> 2009-11-11文章:
    >> 2008-11-11文章:
    >> 2007-11-11文章:
    >> 2005-11-11文章:
           被人晃点

By enmotech on 2021-11-11 10:16 | Comments (0) | | 3431 |


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com