您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle Spatial 的空间查询处理机制分析及优化
OracleSpatial的空间查询处理机制分析及优化学院计算机科学与技术专业计算机科学与技术年级2006级姓名张连帅指导教师张坤龙2010年6月21日摘要随着信息技术的发展,空间数据的应用日益广泛,也越来越受到人们的重视。但是,由于空间数据自身的特点,查询空间数据要花费大量的时间,所以空间查询的效率问题一直是人们关注的重点。众所周知,OracleSpatial是存储、管理、查询空间数据最好的工具之一,因此本文针对OracleSpatial,设计并实现了一个空间查询优化中间件,提高了空间查询的效率。在实现的过程中,首先分析空间查询的执行计划,并与普通一维查询的执行计划进行对比,通过对比可知Oracle仍采用通常的一维查询优化机制来处理空间查询,因此需要一个空间查询优化中间件来提高查询效率;然后依据将空间查询与非空间查询分开执行的原理,对SQL语句进行分解、重组,将生成的优化后的SQL语句提交给Oracle执行;最后,经过与原SQL语句的查询耗时对比后发现,优化后的SQL语句确实减少了执行时间。因此,可得出查询优化中间件确实提高了空间查询的效率的结论。关键词:OracleSpatial;OCI;空间数据;空间查询;优化ABSTRACTWiththedevelopmentofIT,spatialdataisusedmoreandmorewidely,andmoreandmoreattentionhasbeenpaid.Butbecauseofthefeatureofspatialdata,thespatialquerycostslotsoftime,sopeoplehavealwaysfocusedontheefficiencyofthespatialquery.Asweknow,OracleSpatialisonefothebesttoolsthatisusedtostore,manageandqueryspatialdata,sothisarticlewhichbasedonOracleSpaital,designedandrealizedaplug-inthatoptimizesthespatialquery,andimprovedtheefficiencyofthespatialquery.Firstly,weanalysedtheexplainplanofthespatialqueryandcomparedwiththeexplainplanoftheordinaryquery,weachievedtheconclusionthatOraclestillusetheordinaryoptimizemethodtodealwiththespatialquery,soweneedaplug-inthatoptimizesthespatialquerytoimporvetheefficiencyofthespatialquery.Thenbasedonthetheoryofseparatingthespatialqueryfromtheordinaryquery,throughdissectingandrecombiningtheSQLstatement,wesubmittedtheSQLstatementthathasbeenoptimizedtoOracle.Finally,wecomparedthetimethatoptimizedspatialquerycostwiththetimethatunoptimizedspatialquerycostandfoundthatthetimedidcostless.Sowecanassurethattheplug-indoimprovethetheefficiencyofthespatialquery.keywords:OracleSpatial;OCI;Spatialdata;Spatialquery;Optimize1目录第一章绪论........................................................................11.1研究背景及意义...................................................................11.2研究内容...............................................................................11.3论文结构...............................................................................2第二章相关理论与研究...................................................32.1OracleSpatial及相关概念....................................................32.2空间优化的理论和研究.....................................................10第三章空间查询执行计划的分析..................................143.1AUTOTRACE.....................................................................143.2执行计划的分析与对比.....................................................15第四章空间查询的优化.................................................194.1空间查询优化的原理.........................................................194.2空间查询优化的技术支持.................................................194.3空间查询优化程序的设计.................................................244.4空间查询优化程序的实现.................................................26第五章优化结果及结果分析..........................................295.1测试所用数据.....................................................................295.2程序运行说明.....................................................................295.3结果分析.............................................................................30第六章总结与展望.........................................................3326.1总结.....................................................................................336.2展望.....................................................................................33参考文献...........................................................................................34外文资料中文译文致谢天津大学2010届本科生毕业设计(论文)1第一章绪论1.1研究背景及意义地理信息系统(简称GIS)是一门多学科综合的边缘学科,是获取、存储、分析和管理地理空间数据的重要工具、技术和学科。随着信息技术的发展,它已关系到人们生产生活中的方方面面。地理信息系统主要处理与空间位置、空间关系有关的空间数据和带有非空间的属性信息的属性数据。在以往的应用系统中,通常的做法是将两类数据分别存储,利用关系型数据库来存储属性数据;而由于空间数据的特殊性,则保持原有文件结构不变,以文件形式存储空间数据。通过在空间数据文件和关系型数据库中的属性数据之间建立关联为基础来构建应用系统。但是,随着地理信息系统向应用分布式的管理系统领域的转移,这种适用于单机的地理学领域的应用的两类数据分别存储的方式便不再适用,而且空间数据的文件管理模式在实现数据共享、网络通信、并发控制及数据的安全恢复机制等方面出现了难以解决的问题。[1]当Oracle在其数据库中推出空间数据库组件OracleSpatial时,这些问题便得到了解决。它是Oracle公司提供的空间数据管理模块,提供了一个完全开放的数据库管理机制。它是一个可以快速有效地存储、访问、分析空间数据的完整的功能程序集。在OracleSpatial中,引入了抽象数据类型——SDO_GEOMETRY来表示空间数据类型,因此空间数据就可以存储在一列中,而且OracleSpatial发展了最新的空间数据和属性数据的全关系型数据库管理方式,利用关系型数据库来存储和处理空间数据,实现了空间数据与属性数据的一体化存储管理。由于Oracle在数据库方面的优势,吸引了很多GIS公司的应用,空间数据库也渐渐的成为地理信息系统的基础。目前,OracleSpatial的应用日益广泛,但绝大多数情形都是仅仅使用它存储管理空间数据,对空间查询和分析功能涉及不多。而且由于空间数据自身的特点,查询空间数据要花费大量的时间,占有大量的空间。因此,如何优化空间查询性能成为一个重要的问题。但是,在Oracle公司推出的各个版本的数据库中,空间数据的查询和普通的一维数据查询一起执行。因此,底层的查询优化引擎可能会采用通常的一维查询优化机制来处理空间查询,这会导致空间查询效率的降低。因此,探究OracleSpatial的底层查询优化机制对提高OracleSpatial的性能有着至关重要的作用。1.2研究内容本课题研究的内容是Oracle空间查询效率的问题。在Oracle中,空间查询与普通的一维数据查询一起执行,因此可能底层的查询优化引擎会采用通常的一维查询优化机制来处理空间查询,导致空间查询效率的降低。所以,要通过分析空间查询在OracleSpatial中的实际执行计划来确定这一推断。经过对执行计划天津大学2010届本科生毕业设计(论文)2的分析可以发现,相似的空间查询语句和一维数据查询语句的执行计划基本相同。因此可以得出,底层的查询优化引擎确实采用了一维查询优化机制处理空间查询。所以,需要编写一个优化查询中间件将空间查询SQL进行优化后输出给Oracle执行。这个优化机制的原理可以概括为:将空间查询的SQL语句转化为普通的一维数据查询和空间查询,然后先让Oracle执行非空间的查询,在此结果上执行空间查询。经过实验验证,经过这样的优化后,确实提高了空间查询的的效率。1.3论文结构本文主要实现了一种提高空间查询效率的优化中间件。第一章,介绍了课题产生的背景和研究的内容。第二章主要介绍了OracleSpatial的一些基本概念和在空间查询优化方面已取得的研究理论和成果。第三章使用Oracle提供的autotrace工具查看空间查询的计划,并通过其与非空间一维查询的对比,进行空间查询计划的分析。第四章主要介绍优化查询中间件所依据的原理和程序实现的一些细节。第五章对查询结果进行了对比、分析。第六章是
本文标题:Oracle Spatial 的空间查询处理机制分析及优化
链接地址:https://www.777doc.com/doc-4520461 .html