从数据库里检索数据所涉及的活动称为查询处理。对于一个高级查询,DBMS可以使用不同的技术处理、优化和执行。在高级查询语言里,任何一个给定的查询可以有不同的处理方式,每个查询需要的资源也是不同的。图6.1SQL查询命令的执行步骤......
2023-10-28
查询处理的目标是按照分布式上下文将基于分布式数据库(从用户角度看,是一个全局数据库)的高级查询转换成采用低级语言表达的、更有效的、基于局部数据库的执行策略。这里我们假设高级语言是关系演算,低级语言是带通信原语的扩展关系代数。查询变换中涉及的不同层次将在下面章节中细述。
查询处理的一个重要方面是查询优化,因为众多执行策略同样查询的是正确变换,考虑的一个重要因素是使资源消耗最小化。
资源消耗的一个较好的量度是考虑处理查询的总开销。查询的总开销是各个节点处理查询需要的所有时间与节点间通信需要的时间之和。另外一个量度是响应时间。响应时间是执行查询获得响应所经历的时间。因为操作可以在多个节点并行进行,所以响应时间往往小于总开销时间。集中式数据库系统中,总开销主要由CPU开销和I/O开销构成。(www.chuimin.cn)
在分布式数据库系统中,我们希望最小化的总开销包括CPU开销、I/O开销和通信开销。CPU开销是指数据在内存时发生的计算开销。I/O开销是访问存储设备(目前主要是硬盘)实施输入/输出操作时所需的时间。通过选择合适的存取方法和有效使用内存(如缓存)可以将I/O的开销降到最小。通信开销则是参与执行查询的节点间交换数据所需的开销。这种开销,无论是在处理消息(打包/拆包)还是在通信网络中传输数据都会发生。
前两个成本要素(I/O开销和CPU开销)是集中式数据库管理系统要考虑的因素。在分布式数据库系统中还要注意,通信开销则是要考虑的一个重要因素。大部分早期的分布式查询处理的建议方案(下面会讨论)都强调通信开销远大于本地开销(I/O开销和CPU开销),因此可以忽略本地开销。这种假设的基础是基于通信网络的带宽大大低于磁盘通信的带宽。所以查询优化的问题就变成如何让通信开销最小的问题。这种好处是本地优化可以独立实施,直接使用集中式数据库系统中的方法。但要注意的是,随着通信网络的发展,目前通信网络的带宽和本地磁盘访问的带宽越来越接近。本地开销已不能轻易忽略了。
有关分布式数据库技术的文章
从数据库里检索数据所涉及的活动称为查询处理。对于一个高级查询,DBMS可以使用不同的技术处理、优化和执行。在高级查询语言里,任何一个给定的查询可以有不同的处理方式,每个查询需要的资源也是不同的。图6.1SQL查询命令的执行步骤......
2023-10-28
几乎所有的对象查询处理器都使用关系型系统定制开发的优化技术。通过继承层次存取对象的优化也是面向对象和关系查询处理相区别的问题。图15.8对象查询处理方法对象的复杂结构及其上面提及的那些与关系查询的四点主要差异导致对象查询的优化和关系查询比较有很大不同。查询优化器可以计算整棵处理树的成本。......
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
查询分解的最后一步是将查询重新写成关系代数的形式。重构关系代数查询以改进性能。树根则代表查询结果。其次,根节点是关于结果属性的投影操作,显示在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
查询分解是把分布演算查询映射到一个全局关系的代数查询上。从代数优化看,使用直接分步骤的算法可以获得一个“好的”结果,但是,进一步看未必是最佳的。换句话说,每次选最好的,不见得最终结果是最佳的。就像有一筐苹果,每天选一个质量最好的苹果吃,不见得是最好的吃法。数据定位决定查询涉及哪些数据片,并将分布查询转化成分片查询。......
2023-10-28
图2-1在SQL Tool上运行Query语句如上图2-1所示,可以得出直观的良好结果。如果是以往未运行过的SQL语句,则会进行硬解析过程。② 变更的SQL和变更前的SQL提取相同数据,变更 SQL是为了最大限度地减少处理范围以提高性能。③这是为相应SQL提供附加条件,以减少处理范围。2)制定执行计划为实际处理指定的SQL语句,Oracle通过多个步骤执行数据集的访问和处理操作。在数据库中制定SQL语句的执行计划与计划乘坐几号线到达目的地具有相同的意义。......
2023-11-01
相关推荐