《Oracle Spatial的空间查询处理机制分析及优化》由会员分享,可在线阅读,更多相关《Oracle Spatial的空间查询处理机制分析及优化(41页珍藏版)》请在金锄头文库上搜索。
1、 Oracle Spatial 的空间查询 处理机制分析及优化 学 院 计算机科学与技术 专 业 计算机科学与技术 年 级 2006级 姓 名 张连帅 指导教师 张坤龙 2010 年 6月 21 日 摘 要 随着信息技术的发展, 空间数据的应用日益广泛, 也越来越受到人们的重视。但是,由于空间数据自身的特点,查询空间数据要花费大量的时间,所以空间查询的效率问题一直是人们关注的重点。 众所周知, Oracle Spatial 是存储、管理、查询空间数据最好的工具之一,因此本文针对 Oracle Spatial,设计并实现了一个空间查询优化中间件,提高了空间查询的效率。在实现的过程中,首先分析空间
2、查询的执行计划,并与普通一维查询的执行计划进行对比,通过对比可知 Oracle 仍采用通常的一维查询优化机制来处理空间查询,因此需要一个空间查询优化中间件来提高查询效率;然后依据将空间查询与非空间查询分开执行的原理,对 SQL 语句进行分解、重组,将生成的优化后的 SQL 语句提交给 Oracle 执行;最后,经过与原 SQL 语句的查询耗时对比后发现,优化后的 SQL 语句确实减少了执行时间。因此,可得出查询优化中间件确实提高了空间查询的效率的结论。 关键词: Oracle Spatial; OCI;空间数据;空间查询;优化 ABSTRACT With the development of
3、IT,spatial data is used more and more widely,and more 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 one fo the best tools that is used
4、 to store,manage 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
5、 ordinary query,we achieved 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
6、 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 t
7、he plug-in do improve the the efficiency of the spatial query. key words: Oracle Spatial;OCI;Spatial data;Spatial query;Optimize 1目 录 第一章 绪论 . 1 1.1 研究背景及意义 .1 1.2 研究内容 .1 1.3 论文结构 .2 第二章 相关理论与研究 . 3 2.1 Oracle Spatial 及相关概念 .3 2.2 空间优化的理论和研究 .10 第三章 空间查询执行计划的分析 . 14 3.1 AUTOTRACE .14 3.2 执行计划的分析与对比
8、 .15 第四章 空间查询的优化 . 19 4.1 空间查询优化的原理 .19 4.2 空间查询优化的技术支持 .19 4.3 空间查询优化程序的设计 .24 4.4 空间查询优化程序的实现 .26 第五章 优化结果及结果分析 . 29 5.1 测试所用数据 .29 5.2 程序运行说明 .29 5.3 结果分析 .30 第六章 总结与展望 . 33 26.1 总结 .33 6.2 展望 .33 参考文献 .34 外文资料 中文译 致谢 天津大学 2010 届本科生毕业设计(论文) 1第一章 绪论 1.1 研究背景及意义 地理信息系统 (简称 GIS)是一门多学科综合的边缘学科,是获取、存储、
9、分析和管理地理空间数据的重要工具、技术和学科。随着信息技术的发展,它已关系到人们生产生活中的方方面面。地理信息系统主要处理与空间位置、空间关系有关的空间数据和带有非空间的属性信息的属性数据。 在以往的应用系统中,通常的做法是将两类数据分别存储,利用关系型数据库来存储属性数据;而由于空间数据的特殊性,则保持原有文件结构不变,以文件形式存储空间数据。 通过在空间数据文件和关系型数据库中的属性数据之间建立关联为基础来构建应用系统。但是,随着地理信息系统向应用分布式的管理系统领域的转移, 这种适用于单机的地理学领域的应用的两类数据分别存储的方式便不再适用,而且空间数据的文件管理模式在实现数据共享、网络
10、通信、并发控制及数据的安全恢复机制等方面出现了难以解决的问题。1当 Oracle 在其数据库中推出空间数据库组件 Oracle Spatial 时,这些问题便得到了解决。它是 Oracle 公司提供的空间数据管理模块,提供了一个完全开放的数据库管理机制。它是一个可以快速有效地存储、访问、分析空间数据的完整的功能程序集。 在 Oracle Spatial 中, 引入了抽象数据类型 SDO_GEOMETRY来表示空间数据类型,因此空间数 据就可以存储在一列中,而且 Oracle Spatial发展了最新的空间数据和属性数据的全关系型数据库管理方式, 利用关系型数据库来存储和处理空间数据,实现了空间
11、数据与属性数据的一体化存储管理。 由于 Oracle 在数据库方面的优势,吸引了很多 GIS 公司的应用,空间数据库也渐渐的成为地理信息系统的基础。目前, Oracle Spatial 的应用日益广泛,但绝大多数情形都是仅仅使用它存储管理空间数据, 对空间查询和分析功能涉及不多。而且由于空间数据自身的特点,查询空间数据要花费大量的时间,占有大量的空间。因此,如何优化空间查询性能成为一 个重要的问题。但是,在 Oracle公司推出的各个版本的数据库中, 空间数据的查询和普通的一维数据查询一起执行。因此,底层的查询优化引擎可能会采用通常的一维查询优化机制来处理空间查询,这会导致空间查询效率的降低。因此,探究 Oracle Spatial 的底层查询优化机制对提高 Oracle Spatial 的性能有着至关重要的作用。 1.2 研究内容 本课题研究的内容是 Oracle 空间查询效率的问题。在 Oracle 中,空间查询与普通的一维数据查询一起执行, 因此可能底层的查询优化引擎会采