人大金仓数据库KingbaseES-查询优化器概述

关键字:

SQL处理过程、优化器、RBO、CBO、表扫描、表连接、人大金仓

SQL处理过程

在介绍查询优化器前,先让我们来了解一条SQL语句的从客户端发起到执行结束的整个生命周期的过程。

在 KingbaseES 中,SQL 语句的处理通常都要经历以下阶段:词法语法分析阶段(parser)-> 语义检查阶段(analyzer) -> 查询重写阶段(rewritter)-> 查询优化阶段(planner) -> 查询执行阶段(executor)5个阶段,如图所示。

人大金仓数据库KingbaseES-查询优化器概述_第1张图片

(1)词法语法分析阶段:检查 SQL 语句是否符合词法语法规则,然后转化为解析树。

词法分析:就是数据库将接收到的SQL语句(字符串)做切割,切割成一个个token进行归类,例如:关键字、标识符、常量、运算符、逻辑符等。

语法分析:就是将token重新组合成各类语法短句,组成的短句与既定的语法规则进行匹配,判断语法的正确性。

(2) 语义检查阶段:检查解析树是否符合语义规则,然后转化为查询树。

(3) 查询重写阶段:如果查询树中涉及视图或者规则,重写为查询树。

(4) 查询优化阶段:经过逻辑优化和物理优化,生成最优的执行计划。

(5) 查询执行阶段:按照执行计划进行执行。

查询优化器概念与作用

  • 概念:查询优化器是数据库管理系统中的一个重要组成部分,它负责生成SQL查询的最优执行计划。
  • 作用:对于一条给定的SQL语句,通常会有一个或者多个执行计划可供选择,每个执行计划都可以返回正确的结果,但性能可能不同,查询优化器的任务就是选择性能最优的执行计划。

查询优化器的技术

为了给出最优的执行计划,KingbaseES支持了以下两种优化技术:

  • 基于规则的逻辑优化(RBO)
  • 基于代价估算的物理优化(CBO)

以上两种技术是自动的,可以极大地解放数据库应用开发人员的生产力。反过来,理解这两种优化手段也有助于 使用者开发出更高效的 SQL 语句,在优化 SQL 语句性能的时候选择更加适合的优化手段。

3.1基于规则的逻辑优化(RBO)

你可能感兴趣的:(kingbase,人大金仓,金仓数据库,数据库)