分布式数据库系统查询优化算法综述
高级数据库技术(7)分布式查询处理和优化

17
§7.2.1 查询优化问题提出
Q3= Пsname (S |><| σo=‘2’ ( SC) ) 假设SC表在Cno上有索引,S表在Sno上有索引 ①б : 读SC表索引= 读SC表总块数= 50/100<1块 读数据时间 中间结果大小=50条 不必写入外存 ② : 读Student表索引= 读Student表总块数= 50/10=5块 读数据时间 ③П 通过分析可知:采用不同的等 价关系表达式其存取时间差别很 总时间<10秒 大,因而必须优化。
设E1、E2等是关系代数表达式,F是条件表达式
l. 连接、笛卡尔积、并、交的交换律 E1× E2≡ E2×E1
E1 E1
F
E2≡E2 E2≡E2
F
E1 E1
21
§7.2.3 关系代数表达式等价变换
2. 连接、笛卡尔积、并、交的结合律
(E1×E2) × E3 ≡ E1 × (E2×E3)
(E1 (E1
8
§7.1查询处理概述
集中式
查询转换为代数表达式 从所有等价表达式中选择最优的代数表达式 除了集中式问题外,还有 站点之间交换数据的操作 选择最优的执行站点 数据被传送的方式
分布式
9
用户
用户
用户
用户
全局模式 全局模式 全局模式
全局模式
本地模式.
本地模式
LDBMS.
LDBMS
关系代数表达式等价
表达式转换:力图找出与给定关系代数表达式等价 的但执行效率更高的一个表达式。(称作代数优化) 两个表达式等价:产生的结果关系具有相同的属性 集和相同的元组集。 表达式转换的代数定律:将一个表达式转换为与之 等价的另一个表达式的规则。
分布式数据库查询优化方法

分布式数据库查询优化方法【摘要】本文介绍分布式数据库系统查询优化的目标、策略,着重讨论了一种分布式数据库系统查询优化策略是如何影响查询的,并对分布式数据库系统的查询优化的典型方法进行了分析、总结。
分布式数据库系统由于数据的分布和冗余使得分布式查询处理增加了许多新的内容和复杂性,对于一个给定的查询,通常会有多种可能的策略,查询优化就是从这许多策略中找出最有效查询计划的一种处理过程。
并针对分布式数据库系统的查询优化,讨论了三个典型的算法:INGRES 算法、System R* 算法、SDD- 1 算法。
【关键词】分布式数据库;分布式查询;查询优化;查询处理策略;算法0 引言近年来,随着计算机网络和数据库技术的发展,对分布式数据库的应用越来越广泛;随着应用不断扩大,数据的查询也越来越复杂,对查询的效率要求也越来越高,因此查询处理成为分布式数据库系统中的一个关键性的问题[1]。
在分布式数据库中,由于数据的分布与冗余,使得查询处理中一般需要站点间的数据传递及通信费用,成为查询优化的主要矛盾;另一方面,数据的分布与冗余也增加了查询的并发处理的可能性,从而可以缩短查询处理的响应时间,提高处理速度。
总之,分布式查询的规模与优化的因素,都与集中式查询优化不同,因此许多数据库专家学者致力于研究分布式数据库查询优化技术这一重要课题,并且己经在这一领域作了大量的工作,也找到了规律,包括一些大家公认的经典算法;然而由于分布式数据库本身的灵活性,要想设计一个算法对于各种情况都是最优的几乎不太现实,只能说设计一个较优的优化算法,它可以解决某一类型的问题[2]。
分布式数据库中查询优化是一项复杂问题,已经被证明属于NP完全问题,至今都没有得到彻底地解决,里面尚有许多问题值得研究和探讨。
1 分布式查询优化的目标分布式数据库系统的查询优化有两种不同的目标:一种目标,是以总代价最小为标准;另一种目标,是以查询响应时间最短为标准,这一点在分布式数据库系统中具有重要的意义。
数据库优化中的查询优化器调整与分布式查询

数据库优化中的查询优化器调整与分布式查询随着数据量的不断增长和复杂查询的需求,数据库性能优化变得至关重要。
在数据库优化的过程中,查询优化器调整和分布式查询是两项关键的技术,可以大大提高查询效率和系统性能。
一、查询优化器调整查询优化器是数据库系统中的一个重要组件,它负责对查询语句进行优化和执行计划的生成。
优化器会根据查询的复杂度和约束条件选择最佳的执行计划,以达到最高的查询效率。
1. 统计信息更新查询优化器依赖于数据库中的统计信息来评估不同执行计划的代价。
这些统计信息包括表的大小、索引的选择性、列的唯一性以及数据分布的频率等。
在数据更新或查询频繁的情况下,及时更新统计信息至关重要。
2. 索引的选择与优化索引是数据库中提高查询效率的重要手段之一。
查询优化器会评估不同索引的代价,并选择一个最佳的索引来进行查询。
在进行查询优化时,需要考虑索引的覆盖度、选择性、更新代价等因素,以获得最佳的查询执行计划。
3. 使用优化选项大多数数据库管理系统提供了一些优化选项,可以通过设置这些选项来改变查询优化器的行为。
例如,可以调整查询优化器的成本模型、设置合适的查询超时时间、调整并行查询的并发度等。
二、分布式查询随着数据量的增长,单机数据库的查询性能往往无法满足需求。
为了提高查询速度和负载均衡,分布式查询成为了一个重要的解决方案。
1. 水平划分和数据分区在分布式查询中,为了提高查询速度,需要将数据水平划分为多个分区,并将每个分区存储在不同的节点或服务器上。
这样,在执行查询时,可以同时从多个节点上并行查询,从而提高查询性能。
2. 查询路由与查询优化分布式查询需要进行查询路由和查询优化。
查询路由负责将查询分发到相应的节点上进行处理,以避免过多的数据传输和负载不均衡。
查询优化则负责生成最佳的查询执行计划,使分布式查询达到最高的性能。
3. 数据复制与冗余分布式查询通常会涉及到数据的复制和冗余。
为了提高查询性能和容错能力,可以将数据复制到不同的节点上,并定期进行数据同步。
分布式数据库查询优化算法研究与实现(朱)

分布式数据库查询优化算法研究与实现【摘要】在分布式数据库中,查询处理方法的效率对系统的性能起着非常关键的作用,而在分布式数据库系统中,处理一个查询的代价主要是由进行通信的数据量来决定的,半连接是一种非常有效的工具(方法)来减少连接的代价,从而更好的减少通信的数据量。
在这样一个分布式系统中,我们有能力分散那些数据(经常被不同的用户终端使用的)在不同的物理位置,同时可以通过查询的方式组合来自于不同站点的数据,假如在一个比较合适的系统中多个数据副本被使用,这样分散的数据将会产生一个比较合理的查询相应时间。
关键词:分布式数据库,查询优化,标记二次半连接近年来,由于计算机硬件环境,特别是计算机网络通讯技术的迅速发展,以及地理上分散的公司、团体和组织对数据库应用的迫切需求,在集中式数据库系统成熟技术的基础上产生并发展了分布式数据库系统。
分布式数据库系统是数据库技术和网络技术两者相互渗透和有机结合的结果。
分布式数据库系统中的数据在逻辑上属于同一个系统,而在物理上却分布在计算机网络的不同结点上,并由一个分布式数据库管理系统统一管理。
分布式数据库管理系统是分布式数据库系统的核心,负责实现分布式数据库的建立、查询、更新、复制、维护等功能。
众所周知,数据库查询是数据库的核心操作。
关系型数据库技术在数据处理方面取得的巨大成功,很大部分归功于非过程化语言SQL的出现,简捷易用的查询语句大大提高了数据库开发和使用的效率。
关系数据库语言允许把一个非常复杂的查询用非常简洁的SQL语句来表示,隐藏了数据库底层的数据的物理组织细节,减轻了用户选择存取路径的负担。
数据库管理系统只需要用户提出“查什么”,而不需要用户解决“怎么查”,即具体的查询策略。
但是,在实际中,我们不仅要利用数据库管理系统根据SQL指令准确查询用户需要的数据,还需要充分考虑其查询效率的高低。
因此,查询效率是数据库管理系统必须面临的一大挑战。
于是,相应的查询优化技术便成了计算机技术最活跃的研究领域之一。
分布式数据库查询优化方法

【 K e y w o r d s ] D i s t i r b u t e d d a t ba a s e ; D i s t r i b u t e d q u e y; r Q u e y r o p t i m i z a t i o n ; Q u e y r p r o c e s s i n g s t r a t e y; g A l g o i r t h m 0 引 言
容和复杂性. 对 于一个给定的查询. 通常会有 多种可能的策略. 查询优化就是从这许 多策略 中 找 出最有效查询计划的一种处理过程。并针对分布 式数据库 系统的查询优化。 讨论 了三个典型的算法: I N GR E S算 法、 S y s t e m R 算法、 S D D 一1算法 【 关键词 】 分布式数据库; 分布式查询 ; 查询优化 ; 查询 处理策略 ; 算法
近年来 . 随 着 计 算 机 网络 和数 据 库 技 术 的 发 展 . 对 分 布 式 数 据 库 的应用越来越广泛 : 随着应用不断扩大, 数据 的查询也越来越 复杂 , 对 查询的效 率要求也越来越高 , 因此查询处理成为分布式数据库系统中 的一个关键性 的问题【 1 j 。在分布式数据库中. 由于数据的分布与冗余 . 使得查询处理中一般需要站点问的数据传递及通信费用 . 成为查询优 化 的主要矛盾 : 另一方面 . 数据 的分布与冗余也增加 了查询 的并 发处 理 的可能性 . 从而可 以缩短查询处 理的响应时间 , 提高处理 速度。总 之. 分布式查询的规模 与优化 的因素 . 都与集中式查询优化不同 . 因此 许 多 数 据 库 专 家 学 者 致 力 于研 究 分 布 式 数 据 库 查 询 优 化 技 术 这 一 重 要课题 . 并 且 己 经 在这 一领 域 作 了大 量 的 工作 . 也 找 到 了规 律 . 包 括 一 些大 家公认 的经典算法 : 然 而由于分布式数据库本身 的灵活性 , 要想 设计一个算法对于各种情况都是最优的几乎不太现实 . 只能说设计一 个较优的优化算 法 . 它可以解决某一类型的问题[ 2 3 分布式数 据库 中查 询优 化是一项复杂问题 . 已经被证 明属 于 N P完全问题 . 至今 都没有 得到彻底地解决 . 里面尚有许 多问题值得研究 和探讨
分布式数据库查询优化方法

Science &Technology Vision科技视界0引言近年来,随着计算机网络和数据库技术的发展,对分布式数据库的应用越来越广泛;随着应用不断扩大,数据的查询也越来越复杂,对查询的效率要求也越来越高,因此查询处理成为分布式数据库系统中的一个关键性的问题[1]。
在分布式数据库中,由于数据的分布与冗余,使得查询处理中一般需要站点间的数据传递及通信费用,成为查询优化的主要矛盾;另一方面,数据的分布与冗余也增加了查询的并发处理的可能性,从而可以缩短查询处理的响应时间,提高处理速度。
总之,分布式查询的规模与优化的因素,都与集中式查询优化不同,因此许多数据库专家学者致力于研究分布式数据库查询优化技术这一重要课题,并且己经在这一领域作了大量的工作,也找到了规律,包括一些大家公认的经典算法;然而由于分布式数据库本身的灵活性,要想设计一个算法对于各种情况都是最优的几乎不太现实,只能说设计一个较优的优化算法,它可以解决某一类型的问题[2]。
分布式数据库中查询优化是一项复杂问题,已经被证明属于NP 完全问题,至今都没有得到彻底地解决,里面尚有许多问题值得研究和探讨。
1分布式查询优化的目标分布式数据库系统的查询优化有两种不同的目标:一种目标,是以总代价最小为标准;另一种目标,是以查询响应时间最短为标准,这一点在分布式数据库系统中具有重要的意义。
因为分布式数据库系统是由多台计算机组成的系统,数据的分布和冗余也增加了查询的并行处理的可能性,从而可以缩减查询处理的响应时间,加快查询处理速度。
在分布式查询优化中也常同时使用这两种标准,根据系统应用的不同,一种作为主要标准,另一种作为辅助标准[3]。
在分布式数据库系统中,查询优化包括两个内容:查询策略优化和局部处理优化,而查询策略优化尤为重要。
分布式查询策略的优劣将直接影响计算机网络资源耗费的多少。
在集中式数据库系统中,查询优化的目的可以总结为以下三个方面:1)为每个用户查询寻求总代价最小的执行策略;2)总代价是以查询处理期间的CPU 代价和I/O 代价来衡量的;3)总代价最小就意味着查询的响应时间最短。
分布式大数据库查询优化技术
分布式数据库查询优化技术摘要在分布式数据库中,由于高可靠性和高速度性是其重要特点,所以对查询执行的要求也就更高。
而查询执行中查询优化是执行的关键环节,查询优化在很大程度上决定查询的效率或快慢。
本文讨论的重点是对分布式查询执行的全局处理策略进行优化,尽可能避免通信代价的开销,并着眼于查询执行的实际代价,从分布式系统中选出一个最优的执行节点。
从查询执行的效果出发,通过统计的方式,不断从最近的查询执行代价学习纠正最近查询执行的统计代价,为查询的全局处理提供参考,以达到优化执行、提高执行效率和速度的目的。
1 分布式数据库概述1.1 分布式数据库的定义所谓分布式数据库系统就是由分布于多个计算机结点上的若干个数据库组成, 每个子数据库系统都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统,分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。
当然,分布在各个结点上的子数据库在逻辑上是相关的。
简单的说,分布式数据库系统是一系列集中式数据库系统的联合。
它们在逻辑上属于同一系统,但在物理结构上是分布式的[1]。
1.2 分布式数据库系统的组成如图1-1所示,分布式数据库系统由以下述成分组成:(1)多台计算机设备,并由计算机网络连接。
(2)计算机网络设备,网络通讯的一组软件。
(3)分布式数据库管理系统,它包括GDBMS、LDBMS、CM,除了具有全局用户接口由GDBMS连接外,还可以具有自治场地用户接口,由场地DBMS链接,并持有独立的场地目录。
(4)分布式数据库管理者(DDB),包括全局数据库(GDB)和局部数据库(LDB)以及自制场地的自治场地数据库。
(5)分布式数据库管理者(DDBA),它可分为二级,一级为全局数据库管理者(GDBA),另一级问局部或自治场地数据库管理者,统称为局部数据库管理者(LDBA)。
(6)分布式数据库系统软件文档,这是一组与软件相匹配的软件文档及系统各种使用说明和文件。
数据库系统中的查询处理与优化技术综述
数据库系统中的查询处理与优化技术综述数据库系统是当今企业和组织中最为常见的数据存储和管理方式,它提供了高效、可靠的数据访问和处理功能。
其中,查询处理和优化是数据库系统中最关键和常用的任务之一,本文将对数据库查询处理和优化技术进行综述,探讨其原理与应用。
一、查询处理的基本原理数据库查询处理的基本原理包括:语法分析、语义分析、查询优化和执行计划生成。
首先,语法分析将输入的查询语句转换为数据库系统可理解的格式,检查语句是否合法。
然后,语义分析确定查询的含义和目的,并验证语句与数据库模式的一致性。
接下来,查询优化基于查询的目标和数据库的统计信息,通过重写查询语句或构造多个执行计划的候选集,选择最优的执行计划。
最后,执行计划生成将执行计划转化为一系列物理操作,实际执行查询并返回结果。
二、查询优化技术的分类查询优化技术主要包括:选择操作顺序的优化、选择物理算法的优化、选择适当的访问路径的优化以及选择适当的索引的优化。
选择操作顺序的优化是通过改变操作的执行顺序以减少查询处理时间。
选择物理算法的优化是通过选择适当的算法来提高查询处理的效率。
选择适当的访问路径的优化是通过选择合适的访问路径,例如索引扫描和全表扫描等方式,来提高查询的速度。
选择适当的索引的优化是根据查询的特点和访问模式来选择适合的索引,以加快查询的速度。
三、查询处理的优化技术1. 查询重写技术查询重写技术是通过对查询语句进行变换或重构,以产生一个等效但更优执行计划的过程。
它有助于减少查询的成本,并提高查询的执行效率。
查询重写技术主要包括:视图重写、逻辑重写和物理重写。
视图重写是替换查询中的视图关系表达式,以提高查询的效率。
逻辑重写是通过改变查询的逻辑结构,以生成更优的执行计划。
物理重写是通过选择最合适的物理操作,如多路连接、流模式和基于索引的操作等,以提高查询的性能。
2. 查询优化器技术查询优化器是数据库系统中用于选择最优执行计划的组件,它根据查询的目标和统计信息,生成多个可能的执行计划,并选择最优的执行计划。
浅析分布式数据库查询优化
用直接连接还是半连接方案 ,取决于数据传输和局部处理的相对费 2 . 2 分布式数据库数据库查询优化的一般过程。分布式查询处理问 用 。 4 8DD 1 题是 由E — Wo n g 首先提出的,分布式查询处理的基本思想认为分布 算 法 4. . SDD 1 式查询处理是数据传递和局部处理相交织的过程 , 分布式查询处理策 概述 。 S D D 一 1 算法有两部分组成 : 基本算法和后优化。 基 略由数据传递策略与局部处理策略组成 ; 分布式查询处理的过程实质 本算法基于爬山算法 , 是爬山算法的迭代 。 根据评估缩减程序的费用 、 是利用数据传递策略和局部数据处理策略 , 把分布查询转化为局部查 效率、 收益估算几个因素, 给出全部的半联接缩减程序集 , 决定一个最 询 的过程 。 有益的( 收益大的 ) 执行策略 E s , 但效率不一定高 , 然后选择一个装配 分布式数据库中的查询过程可分为逻辑分解 、评议转换和优化 站点 s a , 将已缩减完的关系传送到装配站点 s a 上进行联接 ; 后优化 , 组合几分。分布式数据库系统中, 用户可以用全局查询评议对多个数 将基本算法得到的解进行修正, 以得到更合理的执行策略。
作的操作量, 另一方面可以减少操作次数。 对该查询树进行优化, 从而 达 到查询 优化 的 目的 。 关系代数等价变换规则的优化算法 :利用关系代数等价变换规
则, 把查询树中连接和合并操作尽可能上提( 向树根方向移 ) 。选择和 投影操作尽可能下移( 向树叶方向移 ) 到片段的定义处。这就是说 , 尽 数据库系统的有机结合 。—个分布式数据库系统应该具有如下特点 : 可能先执行选择和投影操作, 后执行连接和合并操作。经过选择和投 数据的物理分布性、 数据的逻辑整体胜、 站点 自治 I 生。 影操作不但可以减少其后操作的操作量 , 而且还可以减少操作次数。 2 分布 式数 据库查 询基 本概 念 3 . 2 基于半连接操作的查询优化算法。基于半连接操作的查询优化 2 . 1 分布式查询处理的层次结构。 1 ) 查询分解 。 查询分解是将查询问 的思想是经过半连接操作 , 可减少操作关系的数据量 , 从而减少站点 题( 如S Q L语句 ) 转换成一个定义在全局关系上 的关系代数表达式 。 间数据的传输量。 这一层的做法与集中式 D B MS 相同, 因为并未涉及分布问题。本层转 基于半连接的优化策略的基于原理就是采用半连接操作 ,在网 换所需要信息在全局概念模式中得到。 2 ) 数据本地化 。 数据本地化是 络 中只传输参与连接的数据。 连接查询的优化问题几乎是分布式数据 把一个在全局关系上的查询进行具体化到合适 片段上的查询。 这一变 库的分布式查询优化算法的全部 , 在分布式数据库中连接查询的主要 换所需要信息在分片模式和片段的分配模式中获得。 3 ) 全局优化 。 全 手段是半连接技术 , 各种不同算法的差异主要是在连接顺序上 , 即在 局优化输入是分片查询 ,全局优化是找出分片查询的最佳操作次序 , 保证结果一致的隋况下, 以什么样的顺序将这些表连接起来最优 。优 包括使得代价函数最小。 全局优化一个重要方面是关于连接操作的优 化的对象一般数据传输量的总和。 化, 全局优化处理层输出是—个优化的 、 片段上的关系代数查询。 这层 转换所需要信息来 自 数据库的统计信 息,包括各站点片段统计信息 、 资源信 息和通信信 息等。 4 ) 局部优化。 局部优化由与查询有关片段的 各个站点执行。它由该站点上的 D B MS 进行优化, 采用集中式数据库 系统 中查询优化的算法, 所需要信息来 自于局部模式。 3 . 3 基于直接连接操作的查询优化算法。基于直接连接操作的查询 优化是一种完全在连接的基础上பைடு நூலகம்虑查询处理的策略 : 有时直接连接 也可能会产生好的效果 , 特别是当有以下情况时 : 1 ) 查询 目标表中的 屙 眭很少, 也不是某连接条件屙 陛。 2 ) 半连接的缩减效果较差时。 究竟
数据库系统的分布式查询与优化
数据库系统的分布式查询与优化数据库系统的分布式查询与优化技术在当前大数据时代中变得越来越重要。
随着数据量的不断增加,传统的单机数据库系统面临着数据处理效率低下和可扩展性差的问题。
为了提高数据库查询的性能和效率,人们开始将数据库分布在多台计算机上,在分布式环境下进行查询和处理。
分布式数据库系统的查询优化是一个非常复杂的问题,需要考虑数据分布、数据一致性、通信成本等因素。
首先,分布式数据库系统的查询需要考虑数据分布的问题。
在一个分布式环境下,数据通常会分布在多个计算节点上。
因此,查询优化的首要任务是确定查询需要在哪些节点上执行。
传统的查询优化技术主要针对单机数据库系统,这些技术无法直接应用到分布式环境中。
为了解决这个问题,需要使用分布式查询优化算法来决定查询计划,并将查询分发到合适的节点上执行。
这些算法通常会考虑到数据的加载平衡、数据分布情况、局部性等因素,以避免数据倾斜和网络拥塞的问题。
其次,分布式数据库系统的查询还需要考虑数据一致性的问题。
在分布式数据库系统中,不同节点上的数据可能会存在更新和删除操作,这就引发了数据一致性的问题。
查询时如何保证多个节点上的数据是一致的,是一个非常重要的问题。
为了解决这个问题,分布式数据库系统通常采用了一致性协议,比如分布式事务技术。
分布式事务技术可以保证多个操作的原子性和一致性,从而保证查询结果的正确性。
但是,分布式事务技术通常会引入一定的性能开销,所以需要权衡数据一致性和查询性能之间的关系。
最后,分布式数据库系统的查询还需要考虑通信成本的问题。
在一个分布式环境中,不同节点之间的数据通信是一个必不可少的环节。
而通信成本通常是分布式查询的一个瓶颈。
为了降低通信成本,可以采用一些优化策略,例如将计算任务推送到靠近数据的节点上执行,减少数据的传输量。
此外,还可以使用数据压缩技术、数据分区技术等来减少网络带宽的消耗。
通过这些优化策略,可以显著提高分布式查询的性能和效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网工102-韩伟彬-1006100162分布式数据库系统查询优化算法综述摘要:随着互联网和数据库技术的飞速发展,分布式数据库在计算机网络上的应用越来越广泛,数据的查询也越叫复杂化,对查询的效率要求也越来越高。
在分布式数据库中,查询处理方法的效率对系统的性能起着非常关键的作用,而在分布式数据库系统中,处理一个查询的代价主要是由进行通信的数据量来决定的,半连接是一种非常有效的工具(方法)来减少连接的代价,从而更好的减少通信的数据量。
在这样一个分布式系统中,我们有能力分散那些数据(经常被不同的用户终端使用的)在不同的物理位置,同时可以通过查询的方式组合来自于不同站点的数据,假如在一个比较合适的系统中多个数据副本被使用,这样分散的数据将会产生一个比较合理的查询相应时间。
关键字:数据库技术,分布式,数据库系统,查询,优化算法。
一:分布式数据库的定义分布式数据库是一个逻辑上完整而在物理上分散在若干台互相连接着的计算机上的数据库系统,各组件分布在网络的各个节点上,依靠特定的更新和检索机制进行数据库分布,数据库的所有性能都会显著增强。
分布式数据库系统使用计算机网络将地理位置分散而管理和控制又需要不同程度集中的多个逻辑单位连接起来,共同组成一个统一的数据库系统。
因此,分布式数据库系统可以看成是计算机网络与数据库系统的有机结合。
分布式数据库系统有两个重要的组成部分:(1)分布式数据库和(2)分布式数据库管理系统。
分布式数据库是计算机网络中各站点上数据库的逻辑集合。
也就是分布式数据库是一组结构化的数据集合,在逻辑上属于同一个系统,在物理上分布在计算机网络的不同站点上,是集中与分布的统一。
这个定义强调了分布式数据库的两种特性;(1)数据分布性。
即这些数据库是分布在不同站点上的。
这把分布式数据库与单一的集中式数据库别开来。
(2)逻辑关联性。
即这些数据库具有某些把它们联系在一起的性质。
这把分布式数据库与驻留在计算机网络不同站点上的一组本地数据库区别开来。
分布式数据库管理系统是分布式数据库中的一组软件,负责管理分布环境下逻辑集成数据的存取、一致性和完整性。
同时,由于数据的分布性,在管理机制上还必须具有计算机网络通信协议的分布管理特性。
分布式数据库系统有两种:(1)在物理上分布的,但逻辑上却是集中的。
这种分布式数据库只适宜用途比较单一的、不大的单位或部门。
(2)在物理上和逻辑上都是分布的,也就是所谓联邦式分布数据库系统。
由于组成联邦的各个子数据库系统是相对“自治”的,这种系统可以容纳多种不同用途的、差异较大的数据库,比较适宜于大范围内数据库的集成。
二:分布式查询的层次结构(1)查询分解:第一层查询分解是将查询的问题(通常是SQL 语句),转换成一个定义在全局关系上的关系代数表达式。
这一层的做法和集中式数据库管理系统一样,因为这层中并没有设计到分布问题。
本层转换所需要的信息在全局概念模式中获取。
(2)数据本地化:第二层数据本地化是把一个在全局关系上的查询,进行具体化,落实到合适的(使尽可能做到本地化或近地化)片段上的查询。
即将在全局关系上的关系代数表达式,变换为在相应片段上的关系代数表达式。
这一变换所需要的信息在分片模式和片段的分配模式中获得。
(3)全局优化:第三层全局优化的输入是分片查询,即在片段上的查询。
查询优化的目标在于寻找一个近于最优的执行策略。
前面两层已经通过消除冗余表达式,查询本地化或近地化等做了某些优化。
全局优化即是找出分片查询的最佳操作次序,包括使得代价函数最小。
代价函数一般是输入输出的代价和通信代价的综合。
不过,在一个基于广域网的分布式数据库管理系统,通信代价作为最为重要最为显著的因素,因为其有限的带宽使得通信费用比本地处理更为昂贵。
全局优化的一个重要方面是关于连接操作的优化,全局优化处理层的输出时一个优化的,片段上的关系代数查询。
本层转换所需要的信息来自数据库统计信息,包括各站点片段统计信息,资源信息和通信信息等。
(4)局部优化:最后一层是局部查询优化由拥有与查询有关的片段的各个站点执行。
在每一个站点上执行的子查询被称为局部查询。
它有该站点上的数据库管理系统进行优化,采用集中式数据库系统中查询优化的算法。
所需信息取自局部模式。
三:分布式数据库查询优化准则和执行过程分布式数据库查询优化的准则是以最小的总代价,在最短的响应时间内获得所需要的数据。
响应时间就是从接收查询到完成查询所需要的时间。
它既与通信时间有关,又与局部处理时间有关,而通信费用与所传输的数据量和通信次数成正比。
分布式数据库系统中数据的分布和冗余会引起查询总代价的增加,但也提高了查询并行处理的可能性,从而可以减缩查询处理的响应时间,加快了查询的处理速度。
在实际查询中难以实现绝对的优化,只能尽可能的将不必要的操作减为最少,选择最便宜或最快的方法来执行操作。
分布式数据库中的查询过程可分为逻辑分解、语言转换和优化组合几个部分。
分布式数据库系统中,用户可以用全局查询语言对多个数据库同时进行查询,即为全局查询。
全局查询一般经过以下几个过程:首先,对全局查询进行逻辑分解成几个子查询,每个子查询对应一个局部数据库;其次,若全局查询语言与局部查询语言不同,则进行语言的等价转换;最后,各个子查询的结果优化组合后返回。
不同的查询分解对应不同的系统性能,因此为了达到优化系统性能,需要相应查询优化器来确定一个相对较好的执行计划,最后启动查询计划。
四:分布式查询优化的主要技术(1)分布式数据库优化分类查询优化的关键在于在所有可能执行策略的途径空间中选择一个最佳的点。
一种直接的方法就是从途径空间搜索所有可能途径,选择一种最佳的途径。
此种方法所需代价太高。
另一种减小代价的办法是随机策略,随机选择一种可能的途径。
这种执行途径可能不是最好的但它是相对比较好的,减小了内存和时间消耗的代价。
再一种减小代价的办法是使用启发式选择,在方法空间中缩小查找范围。
无论在集中式还是分布式系统中,通用的办法是减小中间关系的尺寸。
它首先执行一元操作,然后对二元操作进行排序。
在分布式系统中,一种重要的启发式选择是通过把通信代价与半联接结合来替换传统的联接操作。
另一种分类方法是根据优化与执行的不同时间来分:静态和动态两种优化。
前者在执行前优化;后者在执行时优化。
静态查询优化在编译时进行,因此代价的分布存在于符合查询的各个步骤和阶段中,所以策略的中间关系的大小无法知道,只有在运行时才知道,必须使用数据库统计来估计代价的大小,而错误的估计将会影响子策略的优化途径。
动态查询优化在运行时进行。
在执行的任何一点,最佳的下一个操作的选择依赖于前一次操作执行的结果集的精确信息。
因此,数据库统计不必用来统计中间结果的大小。
但是,它们对选择第一个操作仍然有用。
动态查询的主要优点在于查询处理器可以获得中间关系的实际尺寸的大小,因此减小了错误选择的可能;主要缺点在于查询处理作为一种高昂代价的任务,在每次查询完需要重复执行。
因此这种办法只针对特定的查询。
混合查询优化则致力于提供静态查询优化的优点而尽量避免不精确估计带来的问题。
这种方式是基于静态方式的,但在出现中间关系的预测大小与实际大小有很大偏差时,可能进行运行时动态查询优化。
(2)分布式数据库优化设计要考虑的问题在分布式数据库系统中,一方面,许多相对独立的处理器可能参与数据库操作。
分布式数据库可能提供若干机会:(1)由于在处理一个问题时可以使用多台机器,并行以及加快查询反应速度的可能性增大。
(2)由于数据可以在多个节点上存在副本,系统可能不会仅仅由于一个节点或部件发生故障而不得不停止处理。
另一方面,分布式处理增加了分布式系统各个方面的复杂性,因此即使是DBMS中最基本的组成部分的设计,也得重新考虑。
在许多分布式环境中,通信开销可能远大于处理开销,因此的问题是消息如何传送。
比如分布式提交和分布式封锁。
影响通信开销的因素主要是由于带宽开销迅速减小。
某些类型的数据属于电子方式管理的大对象,因此即使在通信开销较小时,以太字节的数据传输开销也是不能忽视的。
此外,通信开销常常不仅仅涉及数据传送,还有为数据传送做准备的各层协议、在接受方重建数据以及通信的管理。
这些协议各自都需要大量的计算。
尽管计算开销也在减小,与数据与关键数据库操作的传统单处理器操作相比,进行通信所需的计算可能仍不能忽视。
(3)分布式数据库优化技术探索由于分布式数据库在物理上可能分布于不同的服务器节点上,包括库、表甚至数据分片一级的分布。
所以为并行执行提供了可能,为了提高查询操作的并行度,可以对查询执行策略作优化原来在一个节点上进行连接操作的查询,并行化到多个节点上同时执行,从而可以提高总的执行速度。
但是,并行的同时,带来了通信代价,在局域网里,通信所消耗的时间不可忽视。
而且,还有从各个节点上传送过来的数据需要组装成结果集的开销,所以提高并行度,并不见得提高了速度,还可能降低了速度。
基于以上的考虑,我们作这样的思考,能不能尽量避免通信的开销,即让一个查询尽可能在一个节点上执行,这在分布粒度越大的分布式数据库来说,就越容易避免。
所以对库级分布,可以作这样的探索。
(4)分布式数据库优化查询执行方式分布式系统在用户查询请求到来之后首先检查本地是否有此数据库,如果有则在本地执行;如果没有则全局查询处理模块就根据该表中的信息来选择一台处理本查询最优化的节点,即选择一个有该数据库且所操纵的表的查询代价最小的数据库节点。
并与优化的节点建立连接,将查询命令发送到优化的节点上去执行,同时将优化节点的IP返回给客户端。
客户端收到反馈消息(新IP)后,立即与新IP 重新建立连接。
当新的服务器节点处理完查询后,就将结果返回给客户端。
五:总结随着因特网的不断强大,网络信息量越来越大,数据库的查询也日益复杂而且数据量动则几十万条,那么开发者就必须要对数据库进行资源优化以及系统查询的优化。
那在茫茫的数据中对数据进行查找,就是数据挖掘,数据挖掘的任务就是在海量的数据中发现有用的数据。
但是仅仅发现数据那是不够的,而必须采取行动把有用的数据转换成信息,信息变成行动,用行动产生价值。
通过数据挖掘技术来分析数据重要性可以将不同的数据区分开来,从而对分布式数据库系统查询进行优化处理。
参考文献:【1】于秀霞,宋雅娟.分布式数据库半连接查询优化算法的研究[J].长春理工大学学报,2006 【2】.贾焰,王志英,韩伟红等.分布式数据库技术[M].北京:国防工业出版社,2001.【3】王意洁,王勇军,卢锡成.基于半连接的并行查询处理算法的研究[J].软件学报,2001【4】.邵佩英.分布式数据库系统及其应用(第二版)[M].北京:科学出版社,2005【5】.王艳等.分布式数据库查询优化处理的研究与应用[J].南昌大学学报2005【6】教育部高等学校计算机科学与技术教学指导委员会.贯彻《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》的一种建议[M].北京:清华大学出版社,2008 【7】[美]JieWu.DistributedSystemDesign[M].北京:机械工业出版社,2001.【8】闫丽,华彦涛,王艳辉.一种基于半连接的分布式数据库多元连接查询优化算法[J].通化师范学院学报,2005。