分布式存取优化(数据库)
时间:2022-12-19 16:30:01 | 来源:信息时代
时间:2022-12-19 16:30:01 来源:信息时代
分布式存取优化 : 在分布式环境下实现分布式数据库的优化存取操作。通常,分布执行过程实际上就是从查询场地发出查询命令、从数据源获取数据、确定最佳的执行场地和返回执行结果的过程,可用图1描述。查询场地指发出查询命令和存储最终查询结果的场地。查询场地也称最终结果文件。源数据场地指查询命令需要访问的数据副本所在的场地,可能涉及到一个或一个以上的场地。源数据场地也称源数据文件。执行场地: 指查询操作执行所在的场地。执行场地可以和查询场地或源数据场地处于同一场地,也可以不处于同一场地。执行场地也称中间结果文件。
图1 分布执行过程
根据代价评估模型确定最佳方案。常采用的有半连接优化方法和枚举法优化技术。
由于分布式数据库系统的网络环境不同,考虑费用的侧重点也不同: 对于远程网,主要考虑通信开销,使通信代价最小。对于局域网,需同时考虑通信代价和本地处理代价,使综合代价最小。
1.存取优化代价模型
分布数据库系统中,影响查询效率的因素主要指传输代价、I/O代价和CPU代价。传输代价主要包括传输代价和启动延迟;I/O代价指读写磁盘页面的代价;CPU代价指程序执行代价。
通常具有下面的统计值:
广域网环境中: CCOM/CIO=20:1;
局域网环境中: CCOM/CIO=1.6:1。
因此,在具体优化过程中,针对实际场景,侧重考虑相应的代价因素,定义恰当的优化代价模型,以此代价模型为准,选择代价小的执行策略执行。
2.半连接优化方法
半连接技术的优化目标是降低传输费用。半连接操作(R⋈S)是R与S自然连接后在R上的投影,描述为R⋈S=∏
Attr(R)(R⋈S)。
半连接优化算法具体如下:
输入信息:位于不同场地上的两个关系R和S。
输出信息: 实现R⋈S(R.A=S.B)。
算法:(设S的关系大小小于R)在S所在场地上计算S`=∏
B(S),传送S`到R场地: 在R场地上计算R`=R⋈S`=R⋈S,将R`传到S所在场地;在S所在场地上计算R`⋈S=(R⋈S)⋈S=R⋈S。
半连接技术是通过局部缩减操作关系的数据量,发送缩减的关系到执行场地,在执行场地对缩减后的关系进行查询处理。采用该技术可降低场地间传递的信息量,从而减少了整个系统的传输代价。但半连接技术在降低传输代价的同时,又增加了系统的局部处理代价。
3. 枚举法优化技术
若侧重传输代价,局部代价可以忽略不计时,则采用半连接技术较好: 相反,侧重局部代价时,采用直接连接比采用半连接技术简单。枚举法是基于直接连接的实现方法。
(1)连接运算代价:存在关系O和I,实现连接Result=O⋈I(O.A=I.B)。
①嵌套循环法: 是将关系O的每个元组对关系I的元组顺序扫描,查询符合连接属性条件的元组,形成连接结果的一部分。该方法需要对关系O有一次完整扫描,对关系I有Card(O)次扫描。
②合并扫描法:是按连接属性顺序对两个关系扫描,取其匹配的元组构成结果的一部分。在实现中为减少I/O次数,在读取内关系时,将内关系中和外关系具有相同连接值的元组放到缓冲区中,则在处理外关系后续元组时,将具有相同连接值的内关系元组直接从缓冲区取出,而不必再去读页面。但要求将内、外关系排序,排序代价取决于存取方法。
(2)连接关系传输方法: 存储在不同场地上的关系O和I执行连接操作时,其执行场地可选在O或I所在的某一场地。执行前,需将不在执行场地的关系传输到执行场地上。通常采用全部传送或按需传送方法实现关系传输。
全部传送(shipped whole):传送费用为要传送的关系的字节数。
按需存取(fetched as needed): 按需存取是根据请求命令,按需读取信息。
执行场地: 执行场地有三种情况: 在关系O所在的场地(Site(O))或关系I所在的场地(Site(I))或其他场地(Site(Other))。若场地为Site(O),需传送I关系;若场地为Site(I),需传送O关系; 若场地为Site(Other),需传送O和I关系。