第四节分布查询处理.pdf
文本预览下载声明
第四章
分布查询处理
举例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)数据本地化。将全局关系上的代数表达式变换为相应片
显示全部