《数据库》查询树优化
查询树的启发式优化典型的启发式规则:1.选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条2.把投影运算和选择运算同时进行如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系3.把投影同其前或其后的双目运算结合起来4.把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算5.找
·
查询树的启发式优化
典型的启发式规则:
1.选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条
2.把投影运算和选择运算同时进行
如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系
3.把投影同其前或其后的双目运算结合起来
4.把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算
5.找出公共子表达式
例子:求选修了2号课程的学生姓名。
SELECT Student.Sname
FROM Student,SC
WHERE Student.Sno=SC.Sno AND SC.Cno=‘2’;
下面给出SQL语句的代数优化示例:
(1) 把SQL语句转换成查询树
(2)对应的关系代数语法树:
(3)优化:把选择σSC.Cno=‘2’移到叶端
select Student.Sname
from Student
where Student.Sno exists (select SC.Sno from SC where SC.Cno='2');
更多推荐
所有评论(0)