从数据库里检索数据所涉及的活动称为查询处理。对于一个高级查询,DBMS可以使用不同的技术处理、优化和执行。在高级查询语言里,任何一个给定的查询可以有不同的处理方式,每个查询需要的资源也是不同的。图6.1SQL查询命令的执行步骤......
2023-10-28
查询分解的最后一步是将查询重新写成关系代数的形式。典型情况可以通过如下两步实现。
(1)将关系演算形式的查询直接转换成关系代数形式的查询。
(2)重构关系代数查询以改进性能。
为了清楚理解重写的原因,我们可以用算符树来表示关系代数查询。算符树是一棵树,叶子节点是存放在数据库中的一个关系,非叶子节点则是关系代数算符操作的中间关系。操作的顺序是从叶子到根。树根则代表查询结果。
将关系演算查询映射到算符树,可以通过如下方式实现。首先,为每个不同的元组变量(对应一个关系)创建一个叶子。在SQL中,from子句中的叶子(蕴含的是关系)可以直接使用。其次,根节点是关于结果属性的投影操作,显示在Select子句中。然后,where子句限定翻译成关系运算(Select、join、union等)的适当序列,处于根和叶子之间。
【例7.4】 查询“那些在CAD/CAM项目中工作了1年(12个月)或2年(24个月)的名字不叫李林的雇员”,其SQL语句如下:
Select ename
f rom PROJ,EMP_PROJ,EMP
where EMP_PROJ.eno=EMP.eno(www.chuimin.cn)
AND EMP_PROJ.pno=PROJ.pno
AND ename≠"李林"
AND PROJ.pname="CAD/CAM"
AND(dur=12OR dur=24)
这可以映射成图7.2所示的算符树。
应用变换规则,从这棵算符树可以派生出许多不同的树。按照变换后的树,可以重写查询。如何重写,请看下面即将介绍的等价变换。
图7.2 算符树的例子
有关分布式数据库技术的文章
从数据库里检索数据所涉及的活动称为查询处理。对于一个高级查询,DBMS可以使用不同的技术处理、优化和执行。在高级查询语言里,任何一个给定的查询可以有不同的处理方式,每个查询需要的资源也是不同的。图6.1SQL查询命令的执行步骤......
2023-10-28
尽量要求事务执行能够并行化。图14.16Teradata DBC的事务处理是并行的图14.16中,每个竖放的矩形表示处理器,分别记为AMP1、AMP2、AMP3和AMP4,横放的矩形表示事务。图14.18算符内并行注:为算符,为算符实例i,n=并行度2.算符间并行算符间并行指的是不同的算符并行计算。图14.19中的两个选择算符是独立并行的。算法14.2是并行关联连接算法。......
2023-10-28
表7.8分布查询优化算法比较①统计内容分别为:1=关系的基,2=每个属性的不同值个数,3=连接选择系数,4=每个连接属性上投影的大小,5=属性大小和元组大小。......
2023-10-28
涉网查询优化的问题主要包括三部分,其过程简述如下。查询优化器可以由三个成分构成:搜索空间、成本模型和搜索策略。图7.17查询优化过程1.搜索空间查询执行计划是算符树的一种表现形式,对执行序有更明确的表示,有丰富的附加信息,如为每个操作选择最佳实施方法。图7.19连接树的两种主要形态2.搜索策略查询优化器最常用的搜索策略是动态规划,称为确定策略。......
2023-10-28
几乎所有的对象查询处理器都使用关系型系统定制开发的优化技术。通过继承层次存取对象的优化也是面向对象和关系查询处理相区别的问题。图15.8对象查询处理方法对象的复杂结构及其上面提及的那些与关系查询的四点主要差异导致对象查询的优化和关系查询比较有很大不同。查询优化器可以计算整棵处理树的成本。......
2023-10-28
查询分解是把分布演算查询映射到一个全局关系的代数查询上。从代数优化看,使用直接分步骤的算法可以获得一个“好的”结果,但是,进一步看未必是最佳的。换句话说,每次选最好的,不见得最终结果是最佳的。就像有一筐苹果,每天选一个质量最好的苹果吃,不见得是最好的吃法。数据定位决定查询涉及哪些数据片,并将分布查询转化成分片查询。......
2023-10-28
政府的各个职能部门也管理着与其职能有关的部门业务数据,主要包含以下几种。工商企业数据库主要具有以下功能。因此,工商企业数据库围绕的是企业法人,以企业法人为核心及其相关实体构建而成。非政府机构组织数据库等可参照工商企业数据库。类似的部门业务数据库很多,在此不再赘述。......
2023-10-28
查询处理的目标是按照分布式上下文将基于分布式数据库的高级查询转换成采用低级语言表达的、更有效的、基于局部数据库的执行策略。响应时间是执行查询获得响应所经历的时间。集中式数据库系统中,总开销主要由CPU开销和I/O开销构成。CPU开销是指数据在内存时发生的计算开销。通信开销则是参与执行查询的节点间交换数据所需的开销。大部分早期的分布式查询处理的建议方案都强调通信开销远大于本地开销,因此可以忽略本地开销。......
2023-10-28
相关推荐