浅谈SQLite——查询处理及优化
2010-06-25 00:00:00 来源:WEB开发网核心提示: 来看看该SQL语句生成的语法树:FROM部分:第一个表项:表名zName =”stduents”,zAlias=”s”,浅谈SQLite——查询处理及优化(4),jointype = 0,第二个表项:注意,对于上面要SQL语句,生成的执行计划(虚拟
来看看该SQL语句生成的语法树:
FROM部分:
第一个表项:
表名zName =”stduents”,zAlias=”s”,jointype = 0。
第二个表项:
注意,jointype = 1(JT_INNER)。
第三个表项:
注意,jointype = 1(JT_INNER)。
WHERE部分(结点类型为Expr的一棵二叉树):
2、生成执行计划(语法树到OPCODE)
Select的执行计划在sqlite3Select中完成:
int sqlite3Select(
Parse *pParse, /* The parser context */
Select *p, /* SELECT语法树 */
SelectDest *pDest /* 如果处理结果集 */
)
其实,该函数先对SQL语句进行语义分析,然后再进行优化,最后生成执行计划。
对于上面要SQL语句,生成的执行计划(虚拟机opcode)大致分成5部分,前4部分都在sqlite3Select()中生成,它主要调用了以下几个函数:
更多精彩
赞助商链接