Page 206 - 《软件学报》2021年第10期
P. 206

3178                                 Journal of Software  软件学报 Vol.32, No.10, October 2021

                 询重写、查询优化这 3 个步骤,最终生成物理查询计划.查询执行阶段则是执行查询编译生成的物理查询计划.
                 我们以关系数据库为例,关系数据库引擎              [41] 下的单查询执行流程如图 1 所示,不同的颜色代表不同的线程.其中,
                 解析器、转换器和优化器位于查询编译阶段,执行引擎位于查询执行阶段.在整个查询过程中,每个客户端所提
                 交的查询实例始终作为一个独立的线程在程序中运行,不同客户端提交的查询之间互不影响.



                          提交查询1     SELECT FROM  WHERE     解析1                            转换1
                         Send query 1    查询1               Parse 1        解析树1           Convert 1
                        客户端1 Client 1    Query 1                         Parse tree 1
                         提交查询2      SELECT FROM  WHERE     解析2                            转换2
                                                                          解析树2
                         Send query 2    查询2               Parse 2       Parse tree 2    Convert 2
                       客户端2  Client 2    Query 2
                                    SELECT FROM  WHERE     解析3
                         提交查询3                                                            转换3
                         Send query 3                      Parse 3
                                         查询3                              解析树3           Convert 3
                       客户端3  Client 3    Query 3                         Parse tree 3
                                                               解析器                            转换器
                                                               Parser                        Converter
                                       数据                              数据字典
                                       Data                           Data dictionary


                       ID  Name  Age  Country  执行1                          查询优化1
                                             Evaluate 1    物理执行计划1          Optimize 1     逻辑执行计划1
                           查询结果1                           Physical plan 1                 Logical plan 1
                           Result 1
                       ID  Name  Age  Country  执行2                          查询优化2
                                             Evaluate 2    物理执行计划2          Optimize 2
                          查询结果2                            Physical plan 2                 逻辑执行计划2
                           Result 2                                                        Logical plan 2
                       ID  Name  Age  Country  执行3                          查询优化3
                                             Evaluate 3                     Optimize 3     逻辑执行计划3
                          查询结果3                            物理执行计划3                         Logical plan 3
                           Result 3                        Physical plan 3
                                                执行引擎                             优化器
                                             Evaluation engine                  Optimizer

                                     Fig.1    Query execution process of relational database engine
                                            图 1   关系数据库引擎下的查询执行流程

                    数据库中的并发通常是指当前时刻正在执行的工作单元,比如当前时刻正在执行 10 个查询,则并发量为
                 10.并发是数据库系统中非常重要的属性,是最通用的负载定义.吞吐量即单位时间能够处理的查询数量.响应
                 时间即查询的处理时间与等待时间之和.并发的高低直接影响了一个数据库系统的吞吐量和平均响应时间.随
                 着系统并发量的提升,吞吐量和平均响应时间均逐渐增加而达到瓶颈.传统数据库由于受限于单次查询的执行
                 模式,其性能受到并发的严重制约.而本文所提到的多查询的执行模式,旨在减少高并发对数据库系统所带来的
                 负面影响.
                    为了后文讨论方便,我们将数据库系统中的查询语句称为查询表达式,查询表达式中的一部分被称为子表
                 达式,被多个查询表达式所共有的查询表达式称为公共查询子表达式.查询语句的树结构表达方式称为查询树,
                 又称为查询计划树.在查询优化阶段,通过查询搜索算法找出的代价最小的查询计划树称为最优查询路径.将最
                 优查询路径中的节点替换为物理运算符后,生成的查询计划树即为物理查询计划.
                    多查询共享是指多个并发查询在查询执行的各个阶段,合并相似的子表达式,共用相同的查询计划,共享相
                 同的访问数据或者相同的计算过程.通常,查询共享、共享查询、多查询优化在无特别说明的情况下都指的是
                 多查询共享.从计算机程序的角度来说,多查询共享是指多个查询或者多个查询的子表达式在一个线程执行,这
                 与“单次查询”有着本质的不同.
   201   202   203   204   205   206   207   208   209   210   211