Oracle_Spatial_的空间查询处理机制分析及优化

所需积分/C币:14 2013-05-09 08:25:30 573KB PDF
50
收藏 收藏
举报

随着信息技术的发展,空间数据的应用日益广泛,也越来越受到人们的重视。 但是,由于空间数据自身的特点,查询空间数据要花费大量的时间,所以空间查 询的效率问题一直是人们关注的重点。 众所周知,Oracle Spatial 是存储、管理、查询空间数据最好的工具之一,因 此本文针对Oracle Spatial,设计并实现了一个空间查询优化中间件,提高了空间 查询的效率。在实现的过程中,首先分析空间查询的执行计划,并与普通一维查 询的执行计划进行对比,通过对比可知Oracle 仍采用通常的一维查询优化机制 来处理空间查询,因此需要一个空间查询优化中间件来提高查询效率;然后依据 将空间查询与非空间查询分开执行的原理,对SQL 语句进行分解、重组,将生 成的优化后的SQL 语句提交给Oracle 执行;最后,经过与原SQL 语句的查询耗 时对比后发现,优化后的SQL 语句确实减少了执行时间。因此,可得出查询优 化中间件确实提高了空间查询的效率的结论。
With the dcvclopmcnt of IT, spatial data is uscd more and more widcly, and morc and more attention has been paid. But because of the feature of spatial data, the spatial query costs lots of time, so people have always focused on the efficiency of the spatial query As we know, Oracle Spatial is onc fo the best tools that is used to store, manago and query spatial data, so this article which based on Oracle Spaital designed and realized a plug-in that optimizes the spatial query and improved the efficiency of the spatial query. Firstly, we analysed the explain plan of the spatial query and compared with the explain plan of the ordinary query we achicved the conclusion that oracle still use the ordinary optimize method to deal with the spatial query, so we need a plug-in that optimizes the spatial query to imporve the efficiency of the spatial query. Then based on the theory of separating the spatial query from the ordinary query, through dissecting and recombining the sQl statement, we submitted the sql statement that has been optimized to Oracle. Finally we compared the time that optimized spatial query cost with the time that unoptimized spatial query cost and found that the time did cost less. So we can assure that the plug- in do improve the the efficiency of the spatial qu Oracle Spatial: OCI; Spatial data Spatial query; Optimize 目录 第一章绪论 1研究肯景及意义 1.2研究内容 ··············· 论文结构 第二章相关理论与研究 21 Oracle spatial及相关概念 2.2空间优化的理论和研究 ······································ 10 第三章空间查询执行计划的分析 3.1 AUTOTRACE..…….…14 3.2执行计划的分析与对比 15 第四章空间查询的优化 4.1空间查询优化的原理. 4.2空间查询优化的技术支持 4.3空间查询优化程序的设计 24 44空间查询优化程序的实现…. 带看,D看 26 第五章优化结果及结果分析 2 5.1测试所用数据 非非 29 5.2程序运行说明 29 5.3结果分析 ···············.··;·.··········日·····.··.······· 非非·。非音非非·非非非 30 第六章总结与展望 33 61总结 33 6.2展望 33 参考文献 …34 外文资料 中文译文 致谢 天津大学2010届本科生毕业设计(论文) 第一章绪论 1.1研究背景及意义 地理信息系统简称GIS)是一门多学科综合的边缘学科,是获取、存储、分 析和管理地理空间数据的重要工具、技术和学科。随着信息技术的发展,它口关 系到人们生产生活中的方方面面。地理信息系统主要处理与空间位置、空间关系 有关的空间数据和带有非空间的属性信息的属性数据 在以往的应用系统中,通常的做法是将两类数据分别存储,利用关系型数据 库来冇储属性数据;而由于空间数据的特殊性,则保持原有文件结构不变,以文 件形式存储空间数据。通过在空间数据文件和关系型数据库中的属性数据之问建 立关联为基础来构建应用系统。但是,随着地理信息系统向应用分布式的管理系 统领域的转移,这种适用于单机的地理学领域的应用的两类数据分别存储的方式 便不再适用,而且空间数据的文件管理模式在实现数据共享、网络通信、并发控 制及数据的安全恢复机制等方面出现了难以解决的问题。山 当 Oracle在其数据库屮推出空间数据库组件 Oracle Spatial时,这些问题便 得到了解决。它是 Oracle公司提供的空间数据管理模块,提供了一个完全开放 的数据库管理机制。它是一个可以快速有效地存储、访问、分析空间数据的完整 的功能程序集。在 Oracle Spatial中,引入了抽象数据类型— SDO GEOMETRY 来表示空间数据类型,因此空间数据就可以存储在一列中,而且 Oracle Spatial 发展了最新的空间数据和属性数据的全关系型数据库管理方式,利川关系型数据 库来饣储和处理空间数据,实现了空间薮据与属性数据的一体化存储管理。 由于 Oracle在数据库方面的优势,吸引了很多GIS公司的应用,空间数据 库也渐渐的成为地理信息系统的基础。目前, Oracle spatial的应用日益广泛,但 绝大多数情形都是仅仅使用它存储管理空间数据,对空间查询和分析功能涉及不 多。而且由丁空间数据自身的特点,查询空间数据要化费大量的时问,占有大量 的空间。因此,如何优化空间查询性能成为一个重要的问题。但是,在 Oracle 公司推出的各个版本的数据库中,空间数据的查询和普通的一维数据查询一起执 行。因此,底层的查询优化引擎可能会用通常的一维查询优化机制来处理空间 査询,这会导致空间查询效率的降低。因此,探究 Oracle Spatia的底层查询优 化机制对提高 Oracle Spatial的性能有着至关重要的作用。 1.2研究内容 本课题研究的内容是 Oracle空间査询效率的问题。在 Oracle中,空间查询 与普通的一维数据査询起执行,因此可能底层的査询优化引擎公釆用通常的 维査询优化机制来处理空间査询,导致空间查询效率的降低。所以,要通过分析 空间查询在 Oracle Spatial中的实际执行计划来确定这一推断。经过对执行计划 天津大学2010届本科生毕业设计(论文) 的分析可以发现,相似的空间查询语句和一维数据查询语句的执行计划基木相 同。因此可以得出,底层的查询优化引擎硝实采用了一维查询优化机制处理空问 查询。所以,需要编写一个优化查询中间作将空间查询SQL进行优化后输出给 Oracle执行。这个优化机制的原理可以概括为:将空间查询的SQL语句转化为 普通的一维数据查询和空间查询,然后先让 Oracle执行丰空间的查询,在此结 果上执行空间査询。经过实验验证,经过这样的优化后,确实提高了空间查询的 的效率。 1.3论文结构 木文主要实现了一种提高空间查询效卒的优化中间件。第一章,介绍了课题 产生的背景和研究的内容。第二章主要介绍了 Oracle Spatial的一些基本概念和 在空间查询优化方面已取得的研究理论和成果。第三章使用 Oracle提供的 autotrace工具查看空间查询的计划,并通过其与非空间一维查询的对比,进行空 间査询计划的分析。第四章主要介绍优化查询中间件所依据的原理和程序实现的 些细节。第五章对査询结果进行了对比、分析。第六章是全文的总结,并提出 了一些不足和改进 天津大学2010届本科生毕业设计(论文) 第二章相关理论与研究 21 Oracle Spatial及相关概念 2.1.1 Oracle Spatial Oracle spatial提供了一套SQL方案和函数,用来存储、检索、更新和查询 数据库中的空间要素集合2。它包含下述组成部分 个方案( MDSYS),描述攴持几何数据类型的存储、语法以及语义。 空间索引机制 一套操作和旳数,用于执行兴趣区域査询、空间迕接査询以及其他的空 间分析操作。 管理工具 2.1.2对象关系模型和关系模型 Oracle spatial支持用对象关系模型和关系模型来表小儿何体。对象关系模型 使用 MDSYSSDO GEOMETRY字段来表示个几何体实例。它与Open(lS ODBC/SQL地理空间要素的规范中的“带有空间几何体类型的SQL”实现是相对 应的。关系模型用多行记录和字段类型为 Number的一张表来表示一个几何体实 例,但是在 Oracle9i的第二个发布版本例使不再支持,所以我们只讨论对象关系 模型。 对象关系模型具有如下优点 增加了几种几何类型的支持:弧、陨以及复杂多边形、复杂线串和优化 知形。 收进了易用性,具体体现在创建和维护索引、执行空间查询上。 索引直接由 Oracle数据库服务器进行维护,减轻了开发人员的大量工 作 几何体使用单行单列进行模型化 对很多性能进行了优化。 2.1.3几何实体模型和数据模型 几何实体是指通过直线段或者弧线连接一系列顶点形成的实体。几何实体由 它的类型来定义它的具体性质。 Spatial支持很多种原生类型,而几何实体是有 这些原生类型的几何组成,包含如下二维实体(见图2-1) 点及点簇 线串 多边形 天津大学2010届本科生毕业设计(论文) 弧状线串(所有弧都是圆弧) 弧状多边形 复合多边形 矩形 点 线串 多边形 弧状线串 弧状多边形 复合多边形 复合线 矩形 图2-1 Oracle支持的几何实体类型1 数据模型是由元素、几何实体以及层所组成的层次结构,这与空间数据的表 示完全相对应。层由几何实体组成,而几何实体由元素组成。 元素是最基本的几何实体。 Oracle Spatial持的空间元素类型有点、线串、 多边形。例如,元素可以作为星座(点簇)、公路(线串)、县边界(多边形)的 模型。元素的每个坐标都存成Ⅹ,Y点对的形式。点数据由一个坐标构成,而线 数据由代表一个线段元素的两个坐标构成,多边形数据则由坐标对值构成,多 边形的每个线段都有一个顶点对。坐标的顺序是沿着多边形定义的,外环使用逆 时针,内环采用顺时针顺序定义 天津大学2010届本科生毕业设计(论文) 几何实休是对几何要素的表示,可以使用原生元素的有序几何米表达。一个 几何实体可以由单个元素组成,它是 Oracle spatial支持的原生类型的一个实例, 还可以由相同类型或者不同类型的元素的集合组成。例如,一个多边形,用来表 小一个岛屿的集合,是由相同类型元素集合组成的。再例如,一个儿何实体,里 边有一个点和一个多边形,则它是由不同类型的元素的几何组成。 层是具有相同属性集的几何实体的集合。在GIS中,一个图层可能用来表 示空间的拓扑关系,力外的一个图层可能川来表示人口的密度,第三个图层用来 表小一个地区的道路与桥的网络。每一个图层的儿何实体与其相应的空间索引都 存储在 Oracle的标准表格中,且一个空间图层与一个表格对应。 21.4空间查询 空间查询又称空间检索或空间查找,指从数据库中找出满足条件的空间对象 的过程,查找条件与空间位置有关。空间查询一般分为两大类,一类是点查询, 给定一空间点,查找所有包含该点的空间对象;另一类查询是区域查询,包括相 交查询和包含查询。 在 Oracle Spatial中,使用双重査询模型执行空间査询,査询模型如图2-2, 双重査询分别为基木查询与再查询,基本查询对应于一次过滤,再查询对应于 次过滤 次过滤允许快速选择候选记录,以传给二次过滤操作。一次过滤操作比较 几何实体的近似值,以减少计算的复杂性,通常被看作是低成本的过滤。因为一 次过滤比较的是空间对象的近似值,返回精确结果的一个超集 二次过滤操作对一次过滤得到的空间对象进行精确的计算,产生空问查询的 准确结果。它的计算成本比较高,但它只是对一次过滤产生的数据集进行处理, 而不是整个数据集。的 使用双重査询模型冇两个优点:第一,空间对象一般都非常大,会消耗大量 的主存储器空间,使用该模型只需消耗少得多的时问和空问就可以把一个对象的 估计表示值载入内存。第二,空间对象上的计算一般都非常复杂昂贵,对象越复 杂计算空间关系的处理要求就越多,但是计算估计对象速度会提高很多,而且对 计算周期的要求会少得多 21.5空间索引 空间索引是 Oracle Spatia的一个重要特点。空间索引是一种逻辑索引,空 间索引的入口依赖于儿何实体在坐标空间中的具体位置,但是索引值位于不同的 域里。空间索引的好坏对空间査询的效率冇极大的影响,一般来说,空间索引要 做到如下两点 ●找到索引数据空间中的对象,使其与给定点或者兴趣区域(査询窗口)

...展开详情
试读 40P Oracle_Spatial_的空间查询处理机制分析及优化
立即下载 身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
Oracle_Spatial_的空间查询处理机制分析及优化 14积分/C币 立即下载
1/40
Oracle_Spatial_的空间查询处理机制分析及优化第1页
Oracle_Spatial_的空间查询处理机制分析及优化第2页
Oracle_Spatial_的空间查询处理机制分析及优化第3页
Oracle_Spatial_的空间查询处理机制分析及优化第4页
Oracle_Spatial_的空间查询处理机制分析及优化第5页
Oracle_Spatial_的空间查询处理机制分析及优化第6页
Oracle_Spatial_的空间查询处理机制分析及优化第7页
Oracle_Spatial_的空间查询处理机制分析及优化第8页

试读结束, 可继续读4页

14积分/C币 立即下载