网站大量收购独家精品文档,联系QQ:2885784924

空间数据库_查询与优化综述.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
空间数据库_查询与优化综述

空间查询与优化 一、查询处理概览 查询概念: 提取需要的数据出来从数据库中提取数据的一系列活动 查询步骤: 语法分析与翻译(将查询语句变为关系代数表达式)、 优化、 执行 查询优化概念: 为关系代数式的计算选择最有效的查询计划的过程。包括 1.查询执行计划、 2.执行原语(关系代数运算加了如何执行的注释)、 3.根据选择算法对数据记录进行操作 空间查询优化关键技术: 空间索引(数据存取角度,有效读写海量数据)、 查询处理算法(提高具体查询执行效率角度)、 代价模型(指导查询过程的角度) 查询优化过程: 1.通过语法分析语翻译器,将查询语句变为一种内部表达 2.代数优化 进行表达式变化,力图等价但效率更高 3.选择执行策略 4.选择代价最小的执行计划 查询处理优化可行性: 1. 可能性:SQL语言与关系代数表达式的非过程化(做什么,而不用说明怎么做)特点 2. 可行性:优化器集中了最优秀的程序员的经验与智慧;优化器能对多种策略逐一进行考虑;优化器实时更新优化 具有多种可使用信息 二、空间操作计算 空间操作计算与关系数据运算的区别: 1. 空间数据没有公认标准的定义,而关系数据库中的运算很固定 2. 空间对象的位置和范围在二维或多维上定义,不能自然排序成一维数组 3. 数据流读写:空间关系运算代价非常高 空间操作基本类型:查询 1.更新:空间对象的创建、修改和删除 2.空间选择(貌似就是查询):查询出空间对象中满足查询窗口中特定微词的对象。包括点查询()和范围查询() 3.空间连接: 4.空间聚类: 空间操作两步处理: 1.过滤步骤-主过滤:最小外包络矩形近似处理,大大减低计算复杂度 2.精炼步骤-次过滤:利用精确几何信息求算 空间选择查询 点查询:SELECT f.name FROM forest_stand WHERE within (:point , f.geometry); 范围查询:SELECT f.name FROM forest_stand WHERE intersects (:window, f.geometry); 实现方法依赖于数据文件的存储组织 查询的三种算法 1.未排序无索引的数据文件:穷举法,代价O(n),n是forest_stand存储的页面数 2.具有空间索引的数据文件:多采用R树,按照MBR索引,代价O(log n) , n为树的层 3.空间填充曲线散列:z排序和Hilbert曲线映射为一维坐标,然后采用B树或B+树索引 点查询代价O(log n),范围查询代价为O(log n)+。 R+树??? 一般空间选择(空间谓词问题) 1. 组合形式下,空间谓词计算代价高且差别大,处理顺序对总代价影响大(顺序性) 2. 考虑空间谓词的选择性与代价以确定顺序: 等级=(选择性-1)/特征代价 选择性=输出p的集合大小/输入p的集合大小,p是一个谓词 特征代价是谓词对单个元组的计算代价,体现CPU的代价 输出与输入集合之比,体现了I/O代价 3. 按照代价等级的升序依次计算空间谓词 空间连接操作算法 采用粗过滤-精确判断两步方式 例:查找有河流穿过的林分 SELECT * From forest-stand F, river R Where overlap ( F.Geometry, R.Flood-plain ) 假定:关系forest-stand占用M个页面,每页PF个元组,关系river占N个页面,每页PR个元组,一对对象执行overlap函数的平均时间为T,算法过程如下: 1. 嵌套循环:枚举所有可能的元组队,并用overlap函数进行检查,伪码语言: For all tuple f∈F For all tuple r∈R If overlap( F.Geometry, R.Flood-plain ) then addf ,r to result 未优化的算法:扫描外层关系F,对每个f匹配扫描关系R,则I/O代价为(M*N)*T 优化算法,如果有B个可用的缓冲区页面,先读取关系F的B-2页,用剩下的一页缓冲区读取关系R,用另外剩下的缓冲区页回写f,r,I/O代价为(M/(b-2)*N)*T 有空间索引的嵌套循环,在Overlap时可以使用索引来判断,提高工作效率 2. 分块 过滤步骤:分别对F和R中的元组构造K-Pointer元组, 由唯一OID和外包络矩形构成,新关系称为Fkp 和Rkp 。如果新关系都可以装入主存,则采用平面扫描算法处理。否则,将两个关系都分成p块,即F1kp …Fpkp和R1kp … Rpkp 。 分块约束条件:Fkp 和Rkp 都位于主存;对于每个 Fkp ,在Rkp 中

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档