- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三讲 查询处理.ppt
5 查询表达式的运算 (1)实体化方法 ПSno,cno(σsname=‘A’(s∞sc)) 过程:从树的最底层开始,输入关系 利用前面算法执行运算,并将结果保 存到临时关系中作为高一层和输入。 代价:所有运算代价和+把中间结果写 回磁盘的代价。 所以需要估计中间结果的大小! S R (2)流水线方法将运算组成流水线,一个运算结果传送到 下一个运算,从而去除读写临时关系的代价。 ПSno,cno(s∞sc) 流水线是通过系统中的进程或线程建模,从流水化的输入 中接受元组流,并产生一个元组流作为输出。对流水线中 每一相邻操作,均创建缓冲区保存上一操作输出的元组。 Ts∞Tr 投影 运算 S块 R块 T 缓冲区 流水线方法的一个问题是:各个操作间数据的依赖性较强, 可能会由于某种原因操作并不能总是及时的获取数据。 解决的方法: ①需求驱动:下级节点向上级节点不断发出元组请求 ②生产者驱动:上级节点积极生产元组,直到缓冲区 满,等待,直到下级节点将元组取走 ① data ② data 采用流水线会对一些操作的执行算法产生限制 连接时输入来自流水线,可以使用索引嵌套循环,但归并连接不能使用。 由于这个原因,流水线方法往往比实体化方法的代价要高。 也正是由于这个原因,实体化方法更容易被接受,使用。 采用双缓冲技术提高实体化方法的效率。 四.中间结果统计信息的估计 Nr:R的元组个数 Br:R所占的磁盘块数 Lr:元组的大小 V(A.r):R中A属性出现非重复值的个数 (1)选择运算结果的估计S=σF(R) 当F:A=a时,S=Nr/V(A,r) 当F:Aa时,S=Nr((a-min(A,r))/(max(A,r)-min(A,r) 当F为θ1Λθ2Λ…:则令Si为单个条件的估计结果, S=Nr*(S1*S2*…*Sn)/Nrn) (2)自然连接运算结果的估计: Nr*Ns/V(A,r) 如果是条件连接,则写成σθ(R*S)集,估计笛卡尔乘积的结果。 (3)其它运算结果的估计: 投影:V(A,r) 聚集:V(A,r) 集合运算:并=r+s;交=r-s;差:r 五.查询优化 从众多查询策略中找出最有效的查询执行计划的一种处理过程。 查询优化的过程: I-产生逻辑上与给定表达式等价的表达式 II-对等价表达式的执行过程做注释,并产生查询计划 III-估计执行计划的代价并与已有执行计划的代价进行比较,选择小代价的计划,返回I。直到查检完成所规定的等价规则。 (1) 关系表达式的等价变换 等价变换规则(部分) 1)与空值有关的变换 σF(φ) ≡ φ πA(φ) ≡ φ R ∪ φ ≡ R R - φ ≡ R φ - R ≡ φ R ∩ φ ≡ φ R × φ ≡ φ R ∞φ ≡ φ ...... 2)自身运算 R ∪ R ≡ R R ∩ R ≡ R R ∞ R ≡ R 3) 一元运算幂等律 Φ(Φ(R)) ≡ Φ(R) 其中, Φ :一元运算符。 ? σF1 ∧ F2( R ) ≡ σF1( σF2( R ) ) ? πA( πB( R ) ) ≡ πA(R) 其中, A ? B 4) 一元运算交换律 Φ1(Φ2(R)) ≡ Φ2(Φ1(R)) Φ1、Φ2 : 一元运算符 ? 若Φ1、Φ2都是选择运算( σ),上式成立 ? 若Attr.(F) ? A ,则 σF ( πA(R) ) ≡ πA( σF ( R ) ) 5)二元运算交换律 R∞S ≡ S ∞ R R × S ≡ S × R R ∪ S ≡ S ∪ R R ∩ S ≡ S ∩ R 6)一元运算对二元运算的分配律 ? σF( R ∪ S ) ≡ σF( R ) ∪ σF( S ) ? σF( R ∩ S ) ≡ σF( R ) ∩ σF( S ) ? σF( R ? S ) ≡ σF( R ) ? σF( S ) ? πA( R ∪ S ) ≡ πA(R) ∪ πA(S) ? πA( R ∩ S ) ≡ πA(R) ∩ πA(S) ? σF( R ∞S ) ≡ σF( R )∞S R中有F的所有属性 σF( R × S ) ≡ σF( R ) × S R中有F的所有属性 ? σF( R∞S ) ≡ σF1( R ) ∞σF2( S ) F = F1∧F2 ,且F1、F2分别只涉及R、S的属性 ? πA, B( R θ S ) ≡ πA(R) θ πB(S) 注意:A、B分别只涉及R、S的属性, 且有Attr.(θ) ? { A ∪ B } 7)二元运算结合律 设:Θ ?{ , × ,∪,∩ } 有: (R Θ S)
文档评论(0)