文档详情

第四节分布查询处理.pdf

发布:2017-06-02约2.54万字共76页下载文档
文本预览下载声明
第四章 分布查询处理 举例1  求选修了C2课程的学生姓名。SQL语句如下: Select sdudent.sname from student, SC Where student.sno=SC.sno AND SC.cno=“C2” 假定学生课程数据库中有1000个学生(S )记录,10000 个选课(SC )记录,选取C2的选课记录为50个。 系统用等价的关系代数表达式完成这一查询: 举例2  数据库: 简化了的供应商和零件数据库 4 S(sno, city) 10 个元组,存放在场地A P(pno, colour) 105个元组,存放在场地B SP(sno, pno) 106个元组,存放在场地A 每个关系的元组均为100字节长。  查询:求供应红色零件的、北京的供应商号 Select S.sno From S,P,SP Where S.city=‘北京’ AND SP.pno=P.pno AND P.colour=‘红色’ 估算值(某些中间结果的元组数) 红色零件数=10 北京供应商的装运单数= 105  对通信系统的假定 数据传输速度=105字节/秒 传输延迟=1秒  对各种策略i,根据下列公式计算通信时间T[i] T[i]=总传输延迟+总数据量/数据传输速度 4.1 分布式查询处理分类与代价 估计查询代价时考虑的因素: 集中式系统  磁盘存取 (简化为磁盘块传送数)  CPU时间  通信开销 分布式系统  磁盘块传送数  数据在网络上传送的代价  在几个节点上同时分别处理查询的一部 分所获得的性能提高 4.1 分布式查询处理分类与代价  查询代价分析 (1) 远程通讯网。各站点之间的数据传输速度比内 存磁盘间慢许多,以减少传输次数和数据量作为 优化目标。 (2) 高速局域网。传输时间比局部处理时间要短很 多。为了减少局部处理时间,除了要考虑CPU和 I/O时间外,还要考虑并行查询处理,了解各站点 上数据变化情况,以便估算各种查询策略的代 价。 4.1 分布式查询处理分类与代价  分布式查询分类: (1)局部查询。只涉及本地单个站点上的数据。优化 策略有选择投影优先,同时执行一串投影和选择 操作,连接操作前预处理,如按连接属性排序、 建立索引等。 (2)远程查询。只涉及单个站点上的数据,其局部处 理优化策略与本地优化策略相同,但还涉及远程 站点的选择,即选择哪个远程站点上的数据或数 据对象作为查询对象,应尽可能选择最近站点数 据或片断。 (3)全局查询。涉及多个站点上的数据,需要作许多 判断和计算工作: 4.1 分布式查询处理分类与代价 A.具体化。确定查询使用的物理副本,落实查询对象,存在 副本选择和提高处理的并行性等优化策略。 B.确定操作执行次序。主要是确定二元操作和并操作的次 序,先执行连接操作再执行并操作或者先执行部分并操作 后再执行连接操作。 C.确定执行操作的方法。若干个操作在一次数据库访问中 执行。连接操作是最费时的,是优化的重点。 D.确定执行站点。主要考虑通信代价和执行效率。  要找到一个最优策略,就要确定执行查询的物理片断,也必 须确定各操作执行的次序和执行站点,而这又依赖于每个操 作的执行方法,这四个问题是相互制约的。连接和并操作是 远程通信的主要原因。 4.1 分布式查询处理分类与代价  分布式查询处理的层次结构: (1)查询分解。是将查询问题(例如SQL语句)转换成全局关 系上的代数表达式,这与集中式相同。 (2)数据本地化。将全局关系上的代数表达式变换为相应片
显示全部
相似文档