小白学数据库(六) 关系查询处理和查询优化

一、关系数据库系统的查询处理
查询处理步骤:
关系型数据库管理系统查询处理分为四个阶段:查询分析、查询检查、查询优化和查询执行
二、关系数据库系统的查询优化
1、为什么要查询优化?
[示例]求选修了C2号课程的学生姓名
用SQL语句表示:

SELECT S.SN
FROM S.SC
WHERE S.S#=SC.S# AND SC.C#='C2';

3种实现形式:
1、先求S和SC的笛卡尔积,然后从中选出两学号字段值相等、课程号为C2的元组:
在这里插入图片描述
2、先做S和SC的自然连接,然后从中选出课程号为“C2”的元组:
在这里插入图片描述
3、先从SC中选出课程号为C2的元组,然后将该结果与S连接:
在这里插入图片描述
2、优化的一般策略
1、选择、投影运算应尽可能先做
好处:减少下一步的数据量
2、把选择和投影运算同时进行
好处:减少扫描关系的次数
3、在执行连接前对文件适当的预处理
4、把投影同其前后的双目运算结合起来
5、把某些选择和笛卡尔积乘积结合起来成为连接运算
6、找出公共子表达式
3、关系代数等价代换
代数优化策略是通过对关系代数表达式的等价变换来提高查询效率。所谓关系代数表达式的等价是指用相同的关系代替两个表达式中相应的关系所得到的的结果是相同的
[举例]
优化以下SQL语句

SELECT S.SN
FROM S.SC
WHERE S.S#=SC.S# AND SC.C#='C2';

(一)将SQL语句转换为查询树
在这里插入图片描述
(二)转换为关系代数语法树
在这里插入图片描述
(三)对查询树进行优化
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值