跳转至

执行计划

逻辑计划、物理计划

SQL是声明式语言,只是告知数据库系统需要什么数据,而对数据库系统底层的行为作出的约束很少。

数据库系统得到SQL语句后,如何生成语法树、如何组织底层数据结构等底层细节都是由数据库系统管理的。

对于一个SQL语句,会经过以下的流程:

  • 1.SQL重写(可选)
  • 2.生成语法树:将SQL语句转化为语法树。
  • 3.Binder:与System Catalog交互,将逻辑对象与符号(内部标识符)绑定。
  • 4.重写语法树(可选):与System Catalog交互,查看逻辑对象的元数据并以此对语法树进行优化。
  • 5.生成物理计划:通过逻辑计划,对多个可选的物理计划进行成本估算,并选择最优成本下的物理计划。

15445-9

逻辑计划可以等同于关系代数表达式,如关系代数树。

物理计划指的是数据库实际执行语句的方式,是底层执行的方式。