第九章笔记

1.查询优化

查询优化对我们执行sql语句是有很多帮助的,在我们平时使用的sql中都是做了优化的,当然我们可能看不到,这是因为机器做了这些事情,那这些事机器是如何做的呢?

一般步骤:
1.将查询转换成某种内部表示,通常是语法树
2. 根据一定的等价变换规则把语法树转换成标准
 (优化)形式
 3. 选择低层的操作算法
	对于语法树中的每一个操作
	计算各种执行算法的执行代价
	选择代价小的执行算法
4. 生成查询计划(查询执行方案)
	查询计划是由一系列内部操作组成的。

我个人的理解就是减少其中做的多余的部分。

2.查询优化的一般准则

1.	选择运算应尽可能先做        
目的:减小中间关系
2.	在执行连接操作前对关系适当进行预处理
3. 按连接属性排序
	在连接属性上建立索引 
	投影运算和选择运算同时做
目的:避免重复扫描关系
4. 将投影运算与其前面或后面的双目运算结合
目的:减少扫描关系的遍数

3.常用的等价变换规则(重点)

这一章什么都可以不会,就这不行

l. 连接、笛卡尔积交换律
	E1 × E2 ≡ E2 × E1
	E1 等值连接 E2 ≡ E2 等值连接 E1         
	E1  自然连接 E2 ≡ E2 自然连接 E1
2. 连接、笛卡尔积的结合律
(E1×E2) × E3 ≡ E1 × (E2×E3)
(E1  等值连接 E2)   等值连接 E3  ≡  E1  等值连接  (E2 等值连接  E3)
(E1  自然连接  E2)  自然连接  E3 ≡ E1  自然连接   (E2  自然连接  E3)
3.投影的串接定律
π A1,A2, …,An(π B1,B2, …,Bm(E))≡ π A1,A2,…,An (E)

假设:
(1)	E是关系代数表达式
(2)	Ai(i=1,2,…,n), Bj(j=l,2,…,m)是属性名
(3){A1, A2, …, An}构成{Bl,B2,…,Bm}的子集
4.选择的串接定律
бF1 ( б F2(E))≡ бF1∧ F2(E)
5.选择与投影的交换律
(1)假设: 选择条件F只涉及属性A1,…,An
бF (πA1,A2,..,An(E))≡ πA1,A2, ...,An(бF(E))

(2)假设: F中有不属于A1, …,An的属性B1,…,Bm
    π A1,A2,…,An ( бF (E))≡ 
	       πA1,A2,…,An(бF (πA1,A2, …,An,B1,B2, …,Bm(E)))
6.选择与笛卡尔积的交换律
(1) 假设:F中涉及的属性都是E1中的属性
      бF (E1×E2)≡бF (E1)×E2 
(2) 假设:F=F1∧F2,并且F1只涉及E1中的属性,F2只涉及E2中的属性,则由上面的等价变换规则1,4,6可推出:
      бF(E1×E2) ≡б F1(E1)×бF2 (E2)		   
(3) 假设: F=F1∧F2,
               F1只涉及E1中的属性,
               F2涉及E1和E2两者的属性
  бF(E1×E2)≡б F2(бF1(E1)×E2)
  
  它使部分选择在笛卡尔积前先做 
7.选择与并的交换
假设:E=E1∪E2,E1,E2有相同的属性名
бF(E1∪E2)≡ бF(E1)∪ бF(E2)
8.选择与差运算的交换
假设:E1与E2有相同的属性名
бF(E1-E2)≡ бF(E1) - бF(E2)
9.投影与笛卡尔积的交换
假设:E1和E2是两个关系表达式,
           A1,…,An是E1的属性,
           B1,…,Bm是E2的属性

π A1,A2, …,An,B1,B2, …,Bm (E1×E2)≡
π A1,A2, …,An(E1)× π B1,B2, …,Bm(E2)
10.投影与并的交换
假设:E1和E2 有相同的属性名
 	     π A1,A2, …,An(E1∪E2)≡
	    π A1,A2, …,An(E1)∪ π A1,A2, …,An(E2)
小结
1-2:   连接、笛卡尔积的交换律、结合律
3:    合并或分解投影运算
4:    合并或分解选择运算
5-8: 选择运算与其他运算交换
5,9,10: 投影运算与其他运算交换
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值