CMU 15-721 15-查询执行和处理过程 Query Execution & Processing
数据库架构 从整体数据库架构来看,我们可以知道分为网络协议层、优化器层、执行器、存储,详见下图:SQL从客户端发送到数据库服务端,经过解析器、语法语义分析、逻辑优化和物理优化,从一个字符串转换为解析树、语法树到最终的执行计划,那么最终是如何变成机器可以执行的操作呢,本文重点就是来讲执行器的一些重要组件和原理。 执行器 我们先来了解下重要的一个查询的执行过程:一个查询SQL变成执行计划后,既然叫执行计划,那么它一定可以序列化成一系列的操作。执行计划就是由一堆操作符组成的,每个操作符对应的实例对象就是一次操作符作用在一组数据上的调用。一次任务就是一系列这样的一个或多个操作符实例的执行。 执行层的优化 我们现在将要讨论的是那些数据集合能够整个加载到内存中的SQL执行过程中可以进行性能优化的方法。当我们不考虑磁盘问题时候,我们还有其他的一些瓶颈。 优化的目标 1: 减少指令数:用很少的指令去做更多的事情 2: 减少每个指令的周期:在较短周期内执行更多的CPU指令,这意味着需要减少由于cache misses和stalls的缓存加载和存储 3: 并行执行:使用多线程同时并行执行每一条SQL 主要...

