尽量要求事务执行能够并行化。图14.16Teradata DBC的事务处理是并行的图14.16中,每个竖放的矩形表示处理器,分别记为AMP1、AMP2、AMP3和AMP4,横放的矩形表示事务。图14.18算符内并行注:为算符,为算符实例i,n=并行度2.算符间并行算符间并行指的是不同的算符并行计算。图14.19中的两个选择算符是独立并行的。算法14.2是并行关联连接算法。......
2023-10-28
并行查询优化与分布查询处理类似。并行查询优化可以同时利用算符内并行和算符间并行的优点,还可以使用分布式数据库管理系统的技术。
并行查询优化是指生成一个给定查询的执行计划,达到目标成本函数最小的目的。选出的计划应该是优化器给出的候选方案中最佳的,但不一定是所有可能方案中最佳的。一个查询优化器通常从搜索空间、成本模型和搜索策略来考查。
1.搜索空间
搜索空间代表输入查询的是一个替代执行计划集合。这些计划是等价的,即产生相同结果,但算符的执行序不同,实现方法也可能不同。执行计划是抽象的东西,通常是用算符树表示的,其实算符树定义的就是算符的执行序。算符树可以通过加上注解来细化,从而指出附加的执行因素,如每个算符的算法。反映两个顺序算符的一个重要注释是流水线(pipeline)执行。这种情况下,第二个算符在第一个算符完成前启动。换言之,第二个算符可以在第一个算符产生一些元组后使用。流水线执行无需将临时关系重构(materialized),即与流水线中执行的算符对应的树节点是无需存储的。搜索方式可以是深度优先,也可以是广度优先。即便是深度优先,也有左深度优先和右深度优先之分。这类问题在搜索算法中有详细讨论,这里不再赘述。
2.成本模型(www.chuimin.cn)
成本模型用于预测给定计划的成本。为了精确预测,成本模型必须包含并行环境的知识。优化器成本模型负责估算给定执行计划的成本。可以从两方面看:体系结构相关和体系结构无关。体系结构相关部分由算符算法的成本函数构成,例如,用于连接运算的嵌套循环和选择运算的顺序存取。如果忽略并发因素,则只有数据重新分割的成本函数和内存消耗有差别,这构成了体系结构相关部分。在无共享系统里,将一个关系重新分割,意味着通过互联通道传输数据。无共享系统里,每个处理器有自己的内存,无共享情况的内存消耗会由于算符间并行变得复杂。共享内存系统里,所有算符都通过一个全局内存读/写数据。测试是否有足够空间,并行执行它们就很方便,即只需让每个算符消耗的内存之和小于可用内存的大小即可。
3.搜索策略
搜索策略是探索整个搜索空间,以选择最好的计划。它可以确定哪个是最好的计划,以及执行哪种序。搜索策略不区分是集中式查询优化还是分布式查询优化。然而,搜索空间趋向越来越大,因为能存放更多各种并行执行计划。为了估算执行计划的成本,成本模型使用数据库统计和组织信息,如关系基和分割等,就像分布式查询优化器一样。
有关分布式数据库技术的文章
尽量要求事务执行能够并行化。图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
查询优化器体系结构如图6.2所示。图6.2查询优化器体系结构查询优化器的工作过程一般分为两个阶段:重写阶段和规划阶段。在集中式系统中,查询执行策略可以很好地使用扩展关系代数来表示。集中式查询处理器的主要角色是为给定查询根据等价原理选择最好的关系代数查询表达形式。同时,除了要选出关系代数运算的顺序外,分布查询处理器还需确定最佳的运算执行节点。......
2023-10-28
从数据库里检索数据所涉及的活动称为查询处理。对于一个高级查询,DBMS可以使用不同的技术处理、优化和执行。在高级查询语言里,任何一个给定的查询可以有不同的处理方式,每个查询需要的资源也是不同的。图6.1SQL查询命令的执行步骤......
2023-10-28
查询分解的最后一步是将查询重新写成关系代数的形式。重构关系代数查询以改进性能。树根则代表查询结果。其次,根节点是关于结果属性的投影操作,显示在Select子句中。 查询“那些在CAD/CAM项目中工作了1年或2年的名字不叫李林的雇员”,其SQL语句如下:Select enamef rom PROJ,EMP_PROJ,EMPwhere EMP_PROJ.eno=EMP.enoAND EMP_PROJ.pno=PROJ.pnoAND ename≠"李林"AND PROJ.pname="CAD/CAM"AND这可以映射成图7.2所示的算符树。应用变换规则,从这棵算符树可以派生出许多不同的树。如何重写,请看下面即将介绍的等价变换。图7.2算符树的例子......
2023-10-28
首先我们讨论并行计算机及其体系结构。并行系统与并行计算密切关联。图14.1共享内存体系结构对于数据库系统来说,大部分共享内存的商务产品可以使用查询间并行算法来提高事务吞吐量和使用查询内并行算法来节省决策支持查询的响应时间。图14.2共享磁盘体系结构共享磁盘的优点:成本低、高可扩展性、负载均衡、高可用性,以及能方便地迁移到单处理器系统。图14.3无共享体系结构无共享的并行数据库系统如Teradata的DBC和Tandem的NonStop SQL等。......
2023-10-28
参考文献[4]中详细讨论了并行数据库系统中的索引问题。讨论并行数据库系统数据的安置问题,下面几个方面是不可忽视的。并行数据库系统有物理资源级和操作级两个负载均衡问题。图14.25倒排文件的结构在并行系统里,分割一个倒排文件可以提高负载均衡和检索效率。......
2023-10-28
相关推荐