![]() |
||||||
|
|
||||||
![]() |
![]() |
![]() |
![]() |
![]() |
||
| 元组查询执行 导言 一般的,查询处理器解析SQL语句,生成执行计划。执行计划是树状结构,每个树节点执行projection, Join, Selection的单元操作。操作从操作树最下面的节点开始执行相应的操作,把结果作为输入值传达到其父节点。最后,根节点的操作结果就是相应SQL语句的查询结果。 现在的查询处理方法大部分使用流水线操作法,但Altibase使用Tuple-set查询处理方式,此方式最大限度地利用了常驻存储器的特点。
下面简要地看一下这些技术。 流水线查询处理 这种方法采取把子节点的操作结果制作成临时表传达给父节点的方法。假如处理'SELECT T1.I1, T2.I2 FROM T1, T2;'这个SQL语句时如下图所示,最下边的两个扫描节点各自扫描处理T1、T2后做成临时表传达到它们的父节点(JOIN)。JOIN节点根据条件执行两个表格的连接操作,把此结果做成临时表又传达到上层节点(PROJ)。最终,PROJ节点通过映射收到的临时表相应的列得到结果。
Tuple-set查询处理 这种又被叫做基于行指针查询处理(Row Pointer-based)的查询处理方法与流水线查询方法相同也是从计划树的最下面的节点开始访问,但是和流水线查询方法相比有以下几点区别:
这种查询处理方法有以下特征:
|
||||||
| |