习题5
1、SQL的查询处理分为哪几个阶段,分别完成什么工作?
答:SQL的查询处理分为以下四个阶段:查询分析、查询检查、查询优化、查询执行。
(1)查询分析:首先对查询语句进行扫描、词法分析和语法分析。
(2)查询检查:根据数据字典对合法的查询语句进行语义检查,即检查语句中的数据库对象是否存在和是否有效。一般采用查询树或语法分析树,来表示扩展的关系代数表达式。
(3)查询优化:查询优化就是选择一个高效执行的查询处理策略。按照优化的层次,查询优化可分为代数优化和物理优化。
(4)查询执行:依据优化器得到的执行策略生成查询计划,由代码生成器生成执行这个查询计划的代码,并执行代码,返回查询结果。
2、查询优化分为哪两种类型?它们的含义分别是什么?
答:查询优化分为代数优化和物理优化。
改变基本操作的次序,使查询语句执行起来更有效,这种查询优化方法仅涉及查询语句本身,而不涉及存取路径,称为代数优化;根据系统提供的存取路径,选择合理的存取策略,例如,选用顺序搜索或者是索引搜索,这称为物理优化。
3、试举例说明启发式优化过程。
答:略。
4、简述物理优化的主要因素。
答:物理优化主要根据数据读取、表连接方式、表连接顺序、排序等技术对查询进行优化。