首页 理论教育 现代数据库查询处理和优化-分布式系统

现代数据库查询处理和优化-分布式系统

时间:2023-10-21 理论教育 版权反馈
【摘要】:另外,查询处理时间还可能包括在某一场地上的处理时间,主要包括I/O时间和CPU处理时间等。分布式数据库系统在查询操作上可以分成三类,即局部查询、全局查询和远程查询。在对全局查询处理和与优化相关的问题进行讨论时,优化本身的目标和其在查询优化上是对其进行连接的方式。

现代数据库查询处理和优化-分布式系统

(一)查询优化的意义

一般来说,分布式数据库系统中的查询处理比集中式数据库系统中的查询处理复杂,分布式数据库系统中的查询优化比集中式数据库系统的查询优化也更加重要,选择一个好的查询策略将会明显提高查询操作的效率。在分布式数据库中进行查询操作时,若数据不保存在查询机所在的场地,那么场地之间就必然产生通信过程,查询处理中的通信时间就会相对较长。另外,查询处理时间还可能包括在某一场地上的处理时间,主要包括I/O时间和CPU处理时间等。事实上,在分布式数据库中,通信时间往往成为最主要的开销,不同的存取策略的通信时间相差可能很大。因此,必须对存取策略进行优化。在对存取策略进行优化时,既要考虑数据传输速度和传输延迟的综合效应,也要考虑传输延迟、传输持续时间及网络状况的影响等。

(二)查询优化要解决的问题

很多分布式数据库系统呈现的都是关系型,因为查询在语义级别上比较高,所以可以提供优化上的可能性。系统执行查询的策略有很多,同时其本身在性能上的差别很大。分布式DBMS本身比较复杂,其在系统上的开销也是稳定的,效率也比较理想,有利于查询的优化。

分布式数据库系统在查询操作上可以分成三类,即局部查询、全局查询和远程查询。局部查询和远程查询对单个结点上所具有的数据是相关的,包括本地和远程两种。查询优化所采用的技术就是集中式数据库在查询上的优化技术,包括相对代数优化和相对非代数优化两种。全局查询所涉及的结点有多个,其查询和优化相对更加复杂。

在对全局查询处理和与优化相关的问题进行讨论时,优化本身的目标和其在查询优化上是对其进行连接的方式。

为了执行全局查询,要先确定查询的处理策略,其中的计算工作和判断工作是较多的。从总体上来看,可分为以下三类。

1.查询分解

进行全局查询时,要对很多子查询进行分配。每个子查询对某一结点在数据上是相关的,可以对局部DBMS进行处理。分布式数据库在一个关系上可以对很多逻辑片段进行分割,而这些片段在系统上可以对很多结点进行相应的存放。对于一个给定的查询,如果要确定相应的关系,就需要确定一个物理片段,并对不同的物理片段进行选择,然后执行其查询操作。这将对查询的执行效率产生直接影响。因此,应选择具有最小开销的物理片段进行查询。

2.选择操作执行的次序

选择操作执行的次序主要是确定并发操作和连接上的次序。相比其他操作来说,其在次序上的确定是不困难的。例如,对于投影和选择,其总是提前执行的。这一原则在策略上与集中式数据库中的代数优化是相同的。但需要注意的是,不同结点在关系上的连接和在操作上的次序是不同的。(www.xing528.com)

3.选择执行操作的方法

在选择执行操作的方法时,很多操作是在数据库中进行一次性存储的,其存取路径和算法是可以进行选择的。连接查询是比较费时的,而且连接也是执行过程中的重要研究对象。因此,在分布式数据库中,半连接[2]被提出来了。

以上三个问题是独立存在的。为了能确定全局查询中的最优分解,要先确定查询中的物理片段,并掌握查询在其操作上执行的次序,同时,每个操作在执行方法要产生依赖性。这三个问题的联系方式不是线性或单向的,而是相互制约的。

(三)查询优化的目标

无论是集中式数据库还是分布式数据库,查询在处理策略上选择的依据都是在执行查询时的预期代价。其中的不同之处是,查询代价是其构成的主要原因。这与上述两类系统是完全不同的。

集中式数据库对查询所需的开销是CPU代价和I/O代价;分布式数据库不仅有以上两种开销,而且还有网络上数据传输的代价,也就是通信代价。

分布式数据库的数据传输代价要根据不同情况进行相应的考虑。对于远程通信网或一些数据在传输率上比较低的系统来说,其在通信代价上的开销比执行中的CPU和I/O查询开销更大,所以应对其所要实现的优化目标进行相应的考虑。对于局域网或有着较高传输率的系统来说,它们在通信代价上的开销和本地处理所具有的开销是比较接近的,所以在进行优化时,对它们要平等对待。

在优化上,查询的通信代价是单独提出一个问题并对其进行研究。它主要包括以下两个方面:一方面,对通信代价的估计是相对简单的,同时数据传输是针对一个函数的。从这一特点来说,它是不具备I/O开销的。另一方面,分布查询可以进行两方面的区分,也就是局部的优化优于对存取策略的分布优化。因此,对这两者可以进行分开解决。

实际上,在局部优化中,可以充分利用集中式数据库技术;而分布优化是对分布式系统上的考虑,比局部优化更显重要。

在优化上,连接查询可以利用以下两种策略进行:一种是使用半连接方式,以实现关系上的缩减,从而节省传输上的开销;另一种是使用直接连接这一优化方案。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈