SQL Server性能调优之浅析SQL执行的过程
- +1 你赞过了
查询计划概述
很多时候,当我们在使用sql server的时候,做的事情非常简单:输入sql语句,然后执行,最后获取结果。下面,为了使得大家更加清楚的了解Sql server的内部机制,我们就重新来审视一个sql语句的执行。
把sql语句提到给了之后,数据库会执行一系列的内部处理,我们大致的可将内部的处理按照执行的顺序,划分为两个阶段:
发生在关系引擎中的操作
发生在存储引擎中的操作
在数据库的关系引擎中,sql 的查询语句会解析并且将解析的结果传递给后面的查询优化器,查询优化器负责生成执行计划。之后,执行计划(以二级制的格式)就会被传递到存储引擎里面,最后返回或更新底层的数据。
数据库的存储引擎会进行很多的操作,例如锁定,索引的维护,事务的处理等。
因为本系列文章主要的剖析执行计划,所以我们的关注点会放在关系引擎上面。
下面,我们就来稍微详细的讨论一个sql查询语句的执行过程。
查询解析
正如我们刚刚提到过:当把一个sql语句提交到了数据库以后,sql语句最先会被传入到关系引擎中。
当sql语句达到了关系引擎之后,首先要进行的操作就是检查sql语句的格式是否正确。这个处理过程就是我们常说的“解析”过程。解析过程的结果就是生成一个解析树,或者称为查询树。查询树反映了一个查询要执行的逻辑步骤,查询树的结构类似下面图中所示:
其实从编译原理的角度来看,这个解析过程就是文法和词法的解析,最后生成语法树。
最新资讯
热门视频
新品评测