分布式查询处理的步骤和代价
分布式查询处理的步骤:查询分析→查询分解→查询本地化→全局查询优化→局部优化
分布式查询处理的代价QC估算:
- 通信代价T估算:T = Σ传输次数(每次传输延迟时间+每次传输数据量/数据传输速率) =Σ传输次数(C0+X/D)
基于等价变换的查询优化
1.分布式查询策略的重要性:
2.基于关系代数等价变换的查询优化
基于半连接算法的查询优化
半连接运算:由投影和连接操作导出的一种关系代数操作。(半连接运算是不对称的,交换顺序后是不等价的)
例:设关系R和S在属性R.A=S.B上的半连接操作记为:
利用半连接运算实现连接运算:
采用半连接运算实现连接运算的代价及优化:(利用半连接运算减少通信的代价提高查询效率)
➢采用半连接操作优化的原理:两个关系进行连接操作之前,去掉无用的无组,减少数据传输量。
➢采用直接连接运算的总代价:
➢选择半连接实现连接运算的原则:经半连接操作产生少量元组。
➢查询优化策略:
(1)计算各种半连接运算的代价。
(2)计算直接连接运算的代价。
(3)比较并选出最优者。
基于直接连接算法的查询优化
➢利用站点依赖信息的连接算法:
该算法成立的条件是:在自然连接属性A上投影的交集一 定是空。
站点依赖:设Ri[A]、Rj[A]、Si[A]、Sj[A]分别表示关系R、S在站点i、j的A属性上的取值。若对于i≠j,有:Ri[A]∩Sj[A]=Φ,则称关系R和S在属性A上站点依赖。
性质:若关系R和S在属性A上站点依赖,则:
推论:
- 如果R和S在属性A上站点依赖,B⊇A,则, R和S在属性B上站点依赖。
- 如果R和S在属性A上站点依赖, S和T在属性B上站点依赖,则:
使用站点依赖算法实现直接连接运算的优点:
- 无数据传送
- 可进行并行计算
- 可利用本地索引
➢分片和复制算法:
当查询不能在无数据传送方式下处理,可采用分片和复制算法。
算法的原理:选择一组站点,将查询中的某一个关系的所有片段分布到这些站点上,然后把查询中的其余关系复制到每一个选定的站点上。
优点:
- 可进行并行计算
- 在一定程度上可利用本地索引
【北京工业大学—高级数据库系统】