分布式数据库查询系统的优化探讨

合集下载

分布式数据库系统的查询优化策略

分布式数据库系统的查询优化策略

( ) 系操作 的执行顺序 1关
在 查 询 处 理 的时 ,查 询 执 行 的 顺 序 直 接 关 系
到系统 资源耗 费及 响应 时间 。合 理的操 作执行 顺
序 的改 变 能 够 提 高 查 询 效 率 ,对 查 询 的 性 能 产 生 重要的影 响。
由于数据 的分布和冗余 ,使 得查询 处理 中需要 考 虑 站 点 问传 输 数 据 的 通 信 费 用 ,所 以除 了 考 虑
制 、 当增加 数 据冗 余 、 物管 理 的分 布性 、 适 事 全局
的一致性 、 可串行性和 可恢 复性等特点 。
2 系 统 查 询 的 处 理 过 程
分 布 式 数 据 库 系 统 中 的 查 询 涉 及 多 个 数 据 服
不 同 区域 的数据 得 以共 享 , 省 了大量 的资源 , 节 同
查 询转换 :将用 全局查 询语 言表示 的各 子查
1 分 布 式 数 据 库 系 统
分 布式数 据库可定 义 为 :多 个在 逻辑 上相互 依赖 的分布 在计算 机 网络 上 的数 据库 的集 合 。从 概念上 讲 ,分 布式 数据库 在物理 上分散 于 计算 机
网 络 的 各 个 结 点 上 ,而 逻 辑 上 属 于 同 一 个 系 统 的
C U代价 和 I0代 价之外闭 还应该 包括数 据在 网 P / , 络 上 的传输 代价 ,即总 代价 为 C U代 价+/ P I0代 价+ 信代价 。 通 分布 式数据 库系统 的查询 优化有 两种不 同的 目标[ 一 种 目标 是 以总代 价 最小 为标 准 ; 一种 3 1 g 另 目标是 以每个查 询响应时间最短为标 准。 在分 布式查询 优化 中也常 常同时使 用这 两种 标准 , 据系 统应 用 的不 同 , 根 一种作 为 主要 标 准 , 另一种作为辅助标准 。例如 , 可能先 找到一个总代 价最小 的执行方 案 ,然后 使总代 价不增 加 的条件 下修 正方案 , 以使 响应 时间最短 。

如何优化分布式数据库的查询性能(系列三)

如何优化分布式数据库的查询性能(系列三)

分布式数据库是指将数据库分布在多个物理或者虚拟的计算节点上,通过网络连接形成一个逻辑上的整体。

随着互联网的迅猛发展,分布式数据库在大规模数据处理和存储方面有着重要的应用。

优化分布式数据库的查询性能对于提高系统的响应速度和用户体验至关重要。

本文将从多个角度探讨如何优化分布式数据库的查询性能。

1. 数据划分和分片在分布式数据库中,将数据水平划分到多个服务器上是提高查询性能的关键。

通过将数据按照规则划分成多个分片,可以使查询时只涉及到相关分片,从而减少网络传输和计算开销。

在划分数据时,可以根据业务需求和查询频率进行灵活的优化。

2. 建立索引索引是数据库查询性能的重要因素。

在分布式数据库中,合理建立索引可以避免全表扫描,提高查询效率。

根据业务需求和查询频率,可以选择适当的字段建立索引,如主键、外键和经常被查询的字段等。

同时,保证索引的更新和统计信息的及时更新也非常重要。

3. 数据冗余和缓存数据冗余和缓存是提高查询性能的常用策略。

分布式数据库中,可以将热点数据冗余到多个节点上,从而减少查询时的网络传输开销。

同时,在查询频率较高的场景中,可以使用缓存技术,将查询结果缓存在内存中,提高响应速度。

根据实际应用情况,可以结合使用持久化缓存和分布式缓存,实现最佳的性能优化效果。

4. 查询优化查询优化是一个复杂的过程,可以通过多个方面进行优化。

首先,尽量减少查询的数据量,只查询所需的字段和记录,避免全表扫描和不必要的计算。

其次,合理使用分布式查询语句,如跨节点的关联查询和子查询等,从而减少数据传输和节点间的交互。

同时,选择合适的查询算法和数据结构,如哈希连接、索引连接和排序等,可以进一步提高查询性能。

5. 负载均衡和故障恢复分布式数据库中,负载均衡和故障恢复是提高查询性能的重要手段。

通过动态调整数据分片和节点的负载,可以实现资源的均衡利用,避免单个节点负载过重。

同时,实现自动化的故障恢复机制,如数据冗余和备份,可以保证系统的高可用性和容错性。

分布式数据库查询优化策略研究

分布式数据库查询优化策略研究
维普资讯

数 据 库 与 信 息 管 理 ・ ・ ・ ・ ・ ・
电 脑 知 识 与 技 术
分布式数据库 查询优 化策略研 究
聂 林 娣
( 南京 工 业 大 学 信 息 科 学 与 工程 学 院 , 苏 南 京 2 00 ) 江 10 9
摘 要 : 布 式 数 据 库 系统 由于数 据 的 分布 和 冗余 使 得 分 布 式 查 询 处 理 增 加 了许 多新 的 内容 和 复 杂 性 , 分 因此 分 布 式 查 询 处 理 的 优 化 显
Ka r S d s iu e a b eds i u e u r ;e y o t iai n I GI ES ag r h ; s m * a g t h ;DD—1 a r h y we d : i r td d t a ; i r td q ey u r p i z t ; tb a s tb m o N L oi m s t I l t y e L l oi m S t — g i m l o t
得 尤 为重 要 。 本 文 简要 介 绍 分 布 式查 询 优 化 的 目标 、 略 , 针 对 分 布 式 数 据 库 系统 的 查 询优 化 , 述 三 个典 型 的 算 法 : 策 并 讲 I IE NGL S算 法 、 Ss m *算 法 、DD- yt I e L S 1算 法 。 进 行 对 比 、 化 、 结 。 后 对 S D- 并 优 总 最 D 1算 法进 行 改 进 。 关 键 词 : 布 式 数 据 库 ; 布式 查询 ; 分 分 查询 优 化 ; I IE NGL S算 法 ;yt I*算 法 ;DD- Ss m e L S 1算 法
1引 言
分 布 式 数 据 库 系统 是 数 据 库 系统 与 计 算 机 网 络 系 统结 合 的 产 物。 具有 数 据独 立 性 、 中 与 自制 相结 合 的控 制 机 制 、 在适 当的数 集 存 据冗 余 度 、 务 管理 的分 布性 等特 点 。 分 布式 数据 库 系统 中 , 据 事 在 数

基于半连接的分布式数据库查询优化研究

基于半连接的分布式数据库查询优化研究
站点1 站 点2
④把 x 耶个字节送 到 S 在的站点 :费用 为 C = 所 船
L R 卜 —络 l [酬 — — I [—— — 、 — s I — _ — — 卜 —— —— —— —— — — 、 网一 l
() I (S) 1 Y B () 输 兀 R (S) 2传
询 的相 应 时 闻最 短 为 标 准
有半连 接与连接的操作映射 出具有 与等连 接相同结果
的过 程
在 分 布 式 查 询 优 化 中 经 常 同 时 使 用 这 两 个 标 准 根 据 系 统 应用 的 不 同 . 种 作 为 主 要 标 准 种 作 为 次 一 一
收 稿 日期 :o 0 0 —2 21— 6 3 修 稿 日期 : 0 0 7 2 2 1 -0 — 3
有 用 。 此 . 参 与 连 接 的 数 据 或无 用 的数 据不 必 在 网 因 不
络中来 回传输
用 半 连 接 技 术 实 现 连接 操 作 的 程 序 。 即用 一 组 具
价+ 通信代价 . 查询执行 时使其通信 代价最省是分布式 数据库查询优 化的 目标之一 .另一种 目标是 以每个查
()R,:R o 3 s c ( ) R 5 s
作 的过 程 以及 执 行 代 价 , 比较 两种 半 连 接 操 作 的执 行 代 价 评 估 , 绍 S D- 介 D 1算 法 。 关 键 词 : 布 式 数 据 库 : 询 优 化 ;半 连接 操 作 分 查
0 引 言
分布 式数据库是 把数据 分布在 不 同的站点上 . 但 这 些 数 据 片是 建 立 在 统 一 的逻 辑 框 架 上 的 .并 有 高 级
节 。 影 费用 为 P ; 投 B
② 把 x 个字 节发 送给 R所 在站 点 :费用 为 C=

分布式数据库设计与优化

分布式数据库设计与优化

分布式数据库设计与优化随着互联网的发展和数据量的不断增长,传统的单机数据库已经无法满足大规模的数据存储和访问需求。

为了解决这一问题,分布式数据库被广泛采用。

本文将着重介绍分布式数据库的设计和优化策略。

一、分布式数据库设计1. 数据划分在分布式数据库中,数据划分是非常重要的一步。

好的数据划分可以提高系统的并发性能和可伸缩性。

其思路是将数据按照某种规则分散到不同的节点上,实现负载均衡和数据的并行处理。

常见的数据划分策略有两种,即垂直划分和水平划分。

垂直划分指的是将一个表按照列进行拆分,将不同的列存储在不同的节点上。

水平划分则是根据某个条件将表中的数据分散到不同的节点上。

2. 数据复制为了保证分布式数据库的高可用性和容错能力,数据复制是必不可少的。

通过将数据复制到多个节点上,可以避免单点故障,提高系统的可靠性。

数据复制有两种方式,即主备复制和多库复制。

主备复制是将一个节点作为主节点,其他节点作为备节点。

主节点负责处理用户的读写请求,备节点则负责同步主节点的数据。

当主节点发生故障时,可以通过自动切换备节点来保证系统的正常运行。

多库复制是将数据复制到多个节点上,每个节点都可以处理用户的读写请求。

通过多库复制可以提高系统的读取性能,但写入操作需要同步到所有节点,对于写入性能有一定的影响。

3. 数据一致性在分布式数据库中,数据一致性是一个复杂而重要的问题。

由于数据被分散存储在不同的节点上,数据的一致性需要得到保证。

在设计分布式数据库时,需要考虑如何解决数据一致性的问题。

常见的保证数据一致性的方法有两种,即强一致性和最终一致性。

强一致性要求所有节点在同一时刻看到的数据是一致的,但会影响系统的性能和可伸缩性。

最终一致性则允许在一段时间内存在数据不一致的情况,但能够保证最终数据的一致性。

二、分布式数据库优化1. 查询优化查询优化是提高分布式数据库性能的关键。

在设计查询时,应尽量减少数据的传输和节点间的通信开销。

可以通过以下方法来进行查询优化:- 使用索引:在查询中使用索引可以加快数据的查找速度,降低系统的负载。

分布式数据库查询优化方法

分布式数据库查询优化方法
q u e y r p r o c e s s i n g .
【 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完全问题 . 至今 都没有 得到彻底地解决 . 里面尚有许 多问题值得研究 和探讨

分布式数据库查询优化方法

分布式数据库查询优化方法

分布式数据库查询优化方法
随着互联网的快速发展,分布式数据库成为了处理海量数据的常用工具。

然而,由于数据存储在不同的节点上,分布式数据库查询的效率往往受到限制。

为了提升查询性能,以下是一些分布式数据库查询优化方法。

1. 数据分片与划分:将数据切分成多个片段,并将每个片段存储在不同的节点上。

这样可以有效减少单个节点上的数据量,提升查询的并行性和响应速度。

2. 查询路由与数据定位:通过查询路由和数据定位技术,将查询请求发送到存
储相关数据的节点上。

这样可以减少不必要的网络通信和数据传输,提高查询效率。

3. 副本与冗余:通过在多个节点上存储数据的副本,可以提高分布式系统的容
错性和可用性。

当某个节点发生故障时,可以快速切换到其他节点上执行查询操作。

4. 数据局部性原理:根据数据局部性原理,将常被一起查询的数据存储在同一
个节点上,以减少网络通信和数据传输的开销,提升查询效率。

5. 查询优化与索引设计:通过优化查询执行计划和设计合适的索引,可以减少
查询的扫描范围和数据传输量,提高查询性能。

6. 数据压缩与存储优化:采用数据压缩算法和存储优化技术,可以减小数据的
存储空间占用,降低数据传输和查询的成本。

综上所述,分布式数据库查询优化是提高分布式系统性能的重要手段。

通过适
当的数据分片、查询路由、副本存储、数据局部性、查询优化和存储优化等方法,可以有效提升分布式数据库的查询效率,满足处理海量数据的要求。

浅析分布式数据库查询优化

浅析分布式数据库查询优化

用直接连接还是半连接方案 ,取决于数据传输和局部处理的相对费 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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分布式数据库查询系统的优化探讨摘要:随着数据存储的分布性需求日益广泛,对分布式数据的管理和访问就成为数据库技术必须解决的问题。

本文主要论述分布式数据库查询的概念特点,分布式数据库查询优化技术,并从它的优化技术进行深入探讨,对系统实现做了一定的论述,并进行了部分的程序实现。

关键词:分布式数据库查询系统优化引言分布式数据库是在上世纪7o年代中期,随着各企业、团体和单位对数据库更广泛地使用以及数据库技术和计算机网络发展成熟而产生的。

由于分布式数据库克服了集中式数据库的许多缺点,并且自然地适应于许多单位地理上分散而逻辑上统一的组织结构,因此,多年以来从理论到实践都得到了迅速发展,并取得了决定性成果。

分布式数据库是一个逻辑上完整而物理上分散在若干台互相连接着的计算机上的数据库系统,各组件分布在网络的各个节点上,依靠特定的更新和检索机制进行数据库分布,数据库的所有性能都会显著增强。

1.分布式数据库查询的定义和特点1.1 分布式数据库查询的定义分布式数据库系统(distributed data base system,ddbs)是物理上分布而逻辑上集中的数据库系统。

物理上分布是指分布式数据库系统中的数据分布在由网络连接起来的、地理位置分散的不同站点上;逻辑上集中是指各数据库站点之间在逻辑上是一个整体,并由统一的数据库管理系统进行管理,同时各站点又具有管理本地数据的能力。

分布式数据库系统有两个重要的组成部分:分布式数据库(distributed data base,ddb)和分布式数据库管理系统(distributed data base management system,ddbms)。

分布式数据库是计算机网络中各站点上数据库的逻辑集合。

也就是分布式数据库是一组结构化的数据集合,在逻辑上属于同一个系统,在物理上分布在计算机网络的不同站点上,是集中与分布的统一。

1.2分布式数据库查询的特点根据分布式数据库系统的定义,分布式数据库系统具有如下四个基本特点:(1)物理分布性。

数据不是存在一个站点上,而是存储在计算机网络的多个站点上。

(2)逻辑整体性。

数据物理分布在各个场地,但逻辑上是一个整体,它们被分布式数据库系统的所有数据物理分布在各个场地,它们被分布式数据库系统的所有全局用户共享,并由一个分布式数据库管理系统统一管理。

这是分布式数据库系统的逻辑整体性特点,也是与分散式数据库系统的最大区别。

(3)站点自治性。

各站点上的数据由本地的分布式数据库管理系统管理,具有自治处理能力,完成本场地的应用(局部应用)。

(4)站点间协作性。

各站点虽然具有高度的自治性,但是又相互合作构成一个整体。

对全局用户来说,使用分布式数据库系统如同集中式数据库系统一样,用户可以在任何一个站点执行全局应用。

2.分布式数据库查询优化的目标与方案2.1优化的目标分布式查询系统的优化目标一般有两种:一是使网络数据传输量最小,一是使响应时间最短。

与集中式的数据库系统相比,网络的传输速度与计算机内部的数据传输速度一般相差几个数量级,因此查询的局部处理时间与节点之间数据传输的时间相比,几乎可以忽略不计。

而过多的网络传输可能会给网络造成比较大的负担。

因此,减少网络数据传输量成为分布式查询处理的主要问题。

因此,分布式查询处理常常以减少网络间传递的数据量作为优化目标。

2.2查询优化技术方案分布式数据库研究的主要目标之一是隐藏分布式环境的细节,使系统用起来更加简单、有效。

关系数据模型可以为集中式数据库提供一个数据无关的接口。

关系数据库语言是关系演算,使用该语言进行数据查询时,只需对要查询的数据进行简单的描述,而无须说明如何获取这些数据,sql语言就是其中之一。

查询优化器的主要任务是控制和加快查询的执行和数据的传输过程。

查询优化器(如下图)首先以查询的某种表示作为输入,这种表示是查询处理器的语法分析子模块的输出,查询优化器为查询选择一种适当的数据存取策略。

dbms组成中对于用户所观察到的数据库性能影响最大的是查询处理器。

查询处理器分为两个部分:查询编译器和执行引擎。

(1)查询编译器,它将查询翻译成一种内部形式,称作查询计划。

查询计划是要在数据上执行的一系列操作。

通常查询计划中的操作是“关系代数”的实现。

(2)执行引擎,它负责执行选中的查询计划中的每一步。

执行引擎与dbms中大多数的其他成分都有交互,或直接交互,或通过缓冲区间接交互。

3.分布式查询优化的技术实现3.1 术语定义全局优化:指分布式数据库系统中,根据各节点的资源状况和处理能力进行,从整体的角度进行的优化。

全局代价信息表:用于分布式数据库全局查询优化所需的信息,记录系统中各个节点的查询时的代价以及负载统计情况。

表操作代价:是指对表的各种查询的操作代价除以磁盘输入输出的数据量的平均,即各种查询的磁盘输入输出数据的单位数据的代价的平均。

信息中心字典:指记录数据库信息和全局代价信息表,以两级索引存储。

3.2 功能模块及程序描述整个优化部分分为八个小模块:系统接口,全局信息收集,信息中心字典,信息更新,信息广播,优化信息统计,全局优化器,分发和连接处理。

(1)系统接口与全局信息收集本模块是为下面全局信息的获取提供方便统一的调用接口。

主要收集系统中所有数据库及表的信息,查询执行时间。

数据库的状态包括数据库的新建和删除,数据库的忙闲;表的状态也包括表的创建和表的删除,表的忙闲,表得大小.其中,数据库的忙闲从统计得出,表忙用在某个表的等待客户数(线程数)来度量。

(2)信息中心字典信息中心字典是本优化程序的一个枢纽,它记录了所有优化工作所需的重要信息,在系统运行期间常驻内存。

它实质上是实现了一个多级索引顺序表,即一级索引:数据库索引,放置了分布式系统中活动的所有数据库;二级索引:表索引,放置了各个活动数据库的所有表;顺序代价信息表,存放了各个表在系统中各个活动节点上的最近一段时间的代价信息。

关键数据结构:●数据库名索引表项结构:typedef struct dbnamelndex node{ char[name_maxmize]dbnarne;//数据库名bool stateflag;//分布式数据库系统中某个数据库的状态:0,表示不可用;1,表示正常可用unsigned long tablepos;//该数据库所属各表在第二级索引表的起始位置unsigned int offsize;//该数据库的所有表的数量} dbindex●表名索引表项结构:iypedef struct tablenamelndex node{ char[name_maxmize]tablenarne;//表名bool stateflag;// 该数据库的某个表的状态:0,表示不可1,表示正常可用unsigned longcostpos;// 该表的所属的各个节点上的代价在顺序代价表的起始位置unsigned int ofsize;//该表的所属的各个节点上的代价项的数目float tablesize;//该表的存储空间的大小float statiscost;//某一时刻,本节点上该表的统计累计值unsigned long statnum;//某一时刻,本节点上该表的统计次数} tableindex●顺序代价表表项结构typedef struct ordercostlistnode{ costinfo costltem;//代价信息bool stateflag;// 某个表在某个节点上代价的状态:0,表示不可用:1,表示正常可用} costinfo(3)优化信息统计这是本优化程序的核心部分,是优化信息的重要来源。

它记录每一次查询的执行代价,以及表的当前的客户数(线程数)。

然后将其信息组装成代价信息结构(上面的costinfo),并通过索引信息中心字典,将该信息统计相应的表项。

(4)信息更新当优化信息统计了一段时间片后,得出了最近一段时间内某数据库的某表在本节点的平均代价,它代表该表当前和最近的查询代价,要使它为以后的查询提供优化执行的参考,就必须将其更新到信息中心字典去,才能得到有效使用。

(5)信息广播信息广播的作用是将一定时期内,将“系统认为”值得更新到其它节点的本节点的查询性能和信息状况,通知到系统中的其它节点,以便进行全局优化选择。

由于本系统的网络环境是局域网,而局域网的通信状况较好,延时性和不可预测性都较小,所以,本文采用广播的方式通知其它节点。

(6)全局优化器全局优化器是一个关键环节,前面做的所有优化工作在这里得到体现。

它根据信息中心字典的关于某个数据库的某个或多个表的代价进行比较或计算得出一个当前最优的执行节点。

4.总结分布式数据库系统的查询优化的发展空间很大,它随着各个分布式数据库系统的架构的特点而优化考虑的重点会不同。

比如,建构在广域网络中的异构分布式数据库系统,优化可能更多的着眼于广域网的通信情况和异构数据库的特点。

本文在分析了分布式数据库系统优化技术的基础上,对分布式查询的全局处理进行了优化的探讨,并在dpsql数据库模型上进行了设计和实现。

参考文献:[1]贾焰,王志英,韩伟红,李霖. 分布式数据库技术. 北京:机械工业出版社,2005[2]邵佩英. 分布式数据库系统及其应用. 北京:科学出版社,2004。

相关文档
最新文档