首页 理论教育查询处理:实现目标分布式数据库技术

查询处理:实现目标分布式数据库技术

【摘要】:查询处理的目标是按照分布式上下文将基于分布式数据库的高级查询转换成采用低级语言表达的、更有效的、基于局部数据库的执行策略。响应时间是执行查询获得响应所经历的时间。集中式数据库系统中,总开销主要由CPU开销和I/O开销构成。CPU开销是指数据在内存时发生的计算开销。通信开销则是参与执行查询的节点间交换数据所需的开销。大部分早期的分布式查询处理的建议方案都强调通信开销远大于本地开销,因此可以忽略本地开销。

查询处理的目标是按照分布式上下文将基于分布式数据库(从用户角度看,是一个全局数据库)的高级查询转换成采用低级语言表达的、更有效的、基于局部数据库的执行策略。这里我们假设高级语言是关系演算,低级语言是带通信原语的扩展关系代数。查询变换中涉及的不同层次将在下面章节中细述。

查询处理的一个重要方面是查询优化,因为众多执行策略同样查询的是正确变换,考虑的一个重要因素是使资源消耗最小化。

资源消耗的一个较好的量度是考虑处理查询的总开销。查询的总开销是各个节点处理查询需要的所有时间与节点间通信需要的时间之和。另外一个量度是响应时间。响应时间是执行查询获得响应所经历的时间。因为操作可以在多个节点并行进行,所以响应时间往往小于总开销时间。集中式数据库系统中,总开销主要由CPU开销和I/O开销构成。(www.chuimin.cn)

在分布式数据库系统中,我们希望最小化的总开销包括CPU开销、I/O开销和通信开销。CPU开销是指数据在内存时发生的计算开销。I/O开销是访问存储设备(目前主要是硬盘)实施输入/输出操作时所需的时间。通过选择合适的存取方法和有效使用内存(如缓存)可以将I/O的开销降到最小。通信开销则是参与执行查询的节点间交换数据所需的开销。这种开销,无论是在处理消息(打包/拆包)还是在通信网络中传输数据都会发生。

前两个成本要素(I/O开销和CPU开销)是集中式数据库管理系统要考虑的因素。在分布式数据库系统中还要注意,通信开销则是要考虑的一个重要因素。大部分早期的分布式查询处理的建议方案(下面会讨论)都强调通信开销远大于本地开销(I/O开销和CPU开销),因此可以忽略本地开销。这种假设的基础是基于通信网络的带宽大大低于磁盘通信的带宽。所以查询优化的问题就变成如何让通信开销最小的问题。这种好处是本地优化可以独立实施,直接使用集中式数据库系统中的方法。但要注意的是,随着通信网络的发展,目前通信网络的带宽和本地磁盘访问的带宽越来越接近。本地开销已不能轻易忽略了。