18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 代数优化(数据库)

代数优化(数据库)

时间:2022-12-14 20:30:01 | 来源:信息时代

时间:2022-12-14 20:30:01 来源:信息时代

    代数优化 : 根据关系代数的等价变换规则及一套启发式规则,通过对关系代数表达式进行等价变换,达到优化查询执行的目的。
关系代数表达式的等价表示用相同的关系代替两个表达式中相应的关系所得到的结果是相同的。两个关系表达式E1和E2是等价的,可记为E1=E2。常用的等价变换规则包括:
(1)连接、笛卡儿积交换律:设E1和E2是关系代数表达式,F是连接运算的条件,则有:


(2)连接、笛卡儿积的结合律: 设E1、E2、E3是关系代数表达式,F1和F2是连接运算的条件,则有:


(3)投影的串接定律:
πA_((1,A2,……,An))B_((1,B2,…Bn))(E))≡πA1,A2,…,An(E)。
其中,E是关系代数表达式,Ai(i=1,2,…,n),Bj(j=1,2,…,m)是属性名,且{A1,A2,…,An}构成{B1,B2,…,Bm}的子集。
(4)选择的串接定律:
σF1F2(E))≡σF1∧σF2(E)。
其中,E是关系代数表达式,F1和F2是选择条件。选择的串接律说明选择条件可以合并。这样一次就可检查全部条件。
(5)选择与投影操作的交换律:
σFA1,A2,…,An(E))≡πA1,A2,…,AnF(E))。
其中,选择条件F只涉及属性A1,A2,…,An
若F中有不属于A1,A2,…,An的属性B1,B2,…,Bm则有更一般的规则:
πA_((1,A2,…,An))F(E))
≡πA_((1,A2,…,An))FA1,A2,…,A_((n,B1,B2,…,Bm))(E)))。
(6)选择与笛卡儿积的交换律: 如果F中涉及的属性都是E1中的属性,则

σF(E1×E2)≡σF(E1)×E2


如果F=F1∧F2,并且F1只涉及E1中的属性,F2只涉及E2中的属性,则由上面的等价变换规则(1)、(4)、(6)可推出:

σF(E1×E2)≡σF1(E1)×σ_((F2))(E2)


若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)选择对自然连接的分配律:

σF(E1⋈E2)≡σF(E1)⋈σF(E2)


F只涉及E1与E1的公共属性。
(10)投影与笛卡儿积的分配律: 设E1和E2是两个关系表达式,A1,A2,…,An是E1的属性,B1,B2,…,Bm是E2的属性,则



(11)投影与并的分配律: 设E1和E2有相同的属性名,则



进行代数优化时常用的启发式规则(heuristic rules)包括:
规则1: 选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条。它常常可以使执行时间节约几个数量级,因为选择运算通常可以使计算的中间结果大大变小。
规则2: 把投影运算和选择运算同时进行。如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系。
规则3: 把投影同其前或其后的双目运算结合起来,没有必要为了去掉某些字段而扫描一遍关系。
规则4: 把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算,连接特别是等值连接运算要比同样关系上的笛卡儿积省很多时间。
规则5: 找出公共子表达式。如果这种重复出现的子表达式的结果不是很大的关系,并且从外存中读入这个关系比计算该子表达式的时间少得多,则先计算一次公共子表达式并把结果写入中间文件是合算的。当查询对象是视图时,定义视图的表达式就可能是一种公共子表达式。
代数优化的过程是依据上面的等价变换规则,应用这些启发式规则,对查询语法树进行等价变换。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭