空间数据库性能对比实验分析

2014-09-12 11:17肖邱勇李光强
计算机工程与应用 2014年21期
关键词:空间数据图层要素

肖邱勇,李光强

中南大学地球科学与信息物理学院,长沙 410083

空间数据库性能对比实验分析

肖邱勇,李光强

中南大学地球科学与信息物理学院,长沙 410083

空间数据库是管理空间数据的重要方式,亦是GIS的重要组成部分。介绍了空间数据库的概念和发展历程,分析了影响空间数据库性能的因素,进而探讨了图层加载、要素插入和空间计算等应用性能,设计了三组空间数据库的操作实验,对目前常用的几种空间数据库管理空间数据的性能进行了对比分析。

空间数据库;空间索引;空间计算;ArcSDE;SQL Server空间数据库;oracle spatial;地理信息系统

1 引言

地理信息系统之所以受到如此广泛的应用和关注,主要在于它强大的空间数据管理和分析功能。空间数据是GIS的基础[2],然而在GIS实际应用中,空间数据的存储、管理和分析大多依赖空间数据库(Spatial Database,SDB),因此空间数据库系统是GIS的关键组成部分,也是影响GIS使用的重要因素。当前,人们在搭建空间数据库时通常有两种方法:(1)借助第三方软件的空间数据网关和后台关系数据库管理系统,如ESRI的ArcSDE软件;(2)直接利用支持空间数据管理的大型数据库管理系统,如SQLServer2008R2、Oracle11g2等。由于空间数据管理方式较多,功能各异,性能千差万别,空间数据的管理人员在选择和使用空间数据时难以抉择,因此本文从GIS使用角度出发,针对空间图层加载、要素插入和空间计算三个方面设计了三组实验,分别对ArcSDE 10.1 for SQL Server 2008R2、ArcSDE 10.1 for Oracle 11g2、SQL Server 2008R2和Oracle 11g2的空间数据管理性能进行测试,并对比分析了空间数据管理的性能。

2 空间数据库

2.1 空间数据库的概念和发展

空间数据库是一种应用于地理空间数据处理与分析领域的、具有工程性质的数据库,它是GIS的关键技术。作为地理信息系统的重要组成部分,空间数据库一直受到GIS工作者和研究人员的高度重视。总的来说,空间数据库具有(1)数据量庞大;(2)高可访问性;(3)数据模型复杂;(4)属性数据和空间数据的集成管理;(5)应用范围广泛等特点[3]。

由于空间数据的特殊性和复杂性,早期的商用数据库管理系统很难满足空间数据管理的要求。围绕空间数据管理方法,先后出现了文件与关系数据库混合管理模式、全关系型空间数据库管理模式、对象关系型数据库管理模式和面向对象数据库管理模式[4]。由于文件与关系数据库混合管理模式的数据安全性、一致性和完整性难以得到保证,面向对象数据库管理系统尚不够成熟,且价格昂贵,因此这两种管理方式在大型GIS应用领域很少使用。下面简要介绍全关系型和对象关系型管理模式。

全关系型空间数据库管理模式下,关系数据库管理系统不需要做任何扩展,GIS软件商在此基础上开发相应数据转换中间件(有时称为网关或引擎),使之不仅能管理结构化的属性数据,而且能管理非结构化的空间数据,这是目前较为流行的一种空间数据管理方式。常用的空间数据管理中间件有ESRI的ArcSDE[5]、MapInfo的Spatiaware[6]、中地公司的MAPGIS-SDE[7]和超图公司的SuperMap SDX+[8]等。

流通工作是图书馆工作的主要组成部分,目前大部分流通馆员受传统思想意识影响,以人为本工作就是上书、整理书架、借还图书,日复一日年复一年的重复着同样的工作,这种单一枯燥无味而且繁重的劳动,使得流通部馆员情绪烦躁,对工作没有激情,思想麻痹,不思进取,缺乏创新意识,情况严重的时候甚至会对读者脾气暴躁、服务态度恶劣,以至于背离以人为本的服务理念,跟不上图书馆服务的发展趋势。

对象关系型数据库管理模式是随着面向对象技术在关系数据库中的深入应用,由数据库软件商设计的空间数据存储、管理模式,进而在关系型数据库中可以直接存储、管理空间数据的一种方式。目前许多成熟的大型关系数据库大多扩展了空间数据管理功能,如SQL Server Spatial和Oracle Spatial等,这些数据库中不仅支持点、线、面等常用的空间要素模型,而且提供了操作空间要素的空间数据操作语言(Spatial Query Languange,SpatialQL),用户可以直接使用SpatialQL进行空间查询或计算[9]。

总之,当前空间数据管理仍然是以关系数据库为主,由于空间数据的复杂性和特殊性,空间数据库中空间数据的组织和管理不同于一般事务性数据库。为了实现空间数据的高效查询和分析,空间数据库都会发展一种特殊的索引方法——空间索引,这也是影响空间数据计算效率的主要因素。

2.2 空间索引

空间索引是依据空间要素的位置和形状或空间要素之间的某种空间关系,按一定顺序排列的一种辅助性空间数据结构[10],其作用于空间运算和空间要素之间,通过筛选排除大量与空间操作无关的空间要素,缩小空间要素的搜索范围,从而提高空间计算的速度和效率。

目前,常见的空间索引有规则网格索引、BSP树、KDB树、R树、R+树和CELL树等[11]。虽然空间索引多种多样,但其基本原理是相似的,即都采用分割原理将研究空间划分为若干区域,并给每个区域赋以唯一标识[12]。在索引时,依据空间计算规则计算出索引区域的标识,进而利用索引区域标识提取相应区域的空间要素,从而大大降低空间计算的复杂度。常用的索引分割方法有规则分割和基于对象的分割两种。Oracle Spatial的空间索引比较灵活,引入了多种索引机制,如R树索引和四叉树索引;SQL Server Spatial的索引是一个多级网格索引;而ArcSDE则是基于不同的数据库管理系统而采用不同的空间索引方式,比如在Oracle数据库中既可以使用R树索引,也可以使用多级网格索引,而在SQL Server中则使用多级网格索引。本文第三组空间计算的实验,旨在对比不同空间索引模式下的空间计算性能。

2.3 空间计算

空间计算有时又称空间查询或空间检索,是指从空间数据库中查询出满足某一条件空间要素集的过程,空间计算条件都与空间位置、空间关系相关[13],也是GIS区别于其他计算机图形系统和事务性数据库管理系统的主要特征。在GIS应用中,空间计算的使用也最为广泛,如城市公共设施建设、商业选址、路径优化、灾害评估等等,因此空间计算的性能是影响GIS应用的关键。

空间计算的形式多种多样,包括缓冲区分析、邻近分析、空间分离、空间相交、空间包含、空间覆盖等。例如点的缓冲查询,是查询与距离目标点一定距离内的空间要素集合;线的相交查询,是查询与目标线相交的空间要素集合。本文的第三组实验是线要素与面要素空间相交计算性能的对比实验,以分析不同空间数据库管理模式的空间计算性能。

2.4 空间数据库性能

空间数据库具有很强的专业性,影响一个空间数据库性能的因素也非常多,包括服务器硬件条件、内存大小、软件优化、磁盘优化以及数据组织和效率等[14]。空间数据库性能的优化需要很强的专业知识和丰富的实践经验,要求比较高。

由于空间数据库是用来存储、管理空间数据的系统,所以对空间数据的操作能力也就成为评价空间数据库的重要指标之一[15]。从一般的GIS应用角度分析,空间数据的操作通常包括空间图层的加载、空间要素的插入和空间计算等方面,这也是广大GIS用户评价GIS性能的重要参考。为此本文设计了三组实验,对比分析不同空间数据库的数据加载、要素插入、空间计算的能力。

3 对比实验

本实验利用C#2010和ArcObject 10.1开发了客户/服务模式的程序,即前端运行桌面版客户程序,加载后台空间数据库中的空间数据,设计了三组实验用于测试不同类型空间数据库中的空间图层加载、空间要素插入、空间计算的时间花销,对比空间数据库的性能。后台空间数据的管理分别使用ArcSDE 10.1 for SQL Server 2008 R2、ArcSDE 10.1 for Oracle 11g2、SQL Server 2008 R2和Oracle 11g2。系统运行的设备为戴尔2950服务器,配备两颗Xeon E5405 2 GHz CPU和4 GB内存,操作系统为Windows Server 2008 R2 Enterprise。实验数据是在“国家基础地理信息系统”网站免费下载的全国1∶400万矢量地图,包括国界、省界、县级、首都和省级行政中心、地市级以上居民地、三级以上河流以及主要铁路。

为了保证对比实验的可靠性,本章每组实验均连续执行40次,从中选取稳定的连续20次执行时间进行对比。

3.1 空间图层加载实验

本组实验利用ArcObject10.1自带的方法/函数加载空间数据,并连续运行40次,然后从中截取相对稳定的连续20次数据加载花销时间,作为本实验的对比数据。实验所加载的数据包括国界、省界、居民地、河流等18个图层,其中点要素图层3个,线要素图层10个,面要素图层5个。为使得本实验更加客观,在加载所有图层数据时,均不进行任何渲染操作。实验结果如图1所示。

图1 空间图层加载花费时间曲线图

ArcSDE for SQL Server、ArcSDE for Oracle、SQL Server Spatial和Oracle Spatial的平均加载时间分别为0.322 s、0.327 s、0.18 s、0.378 s。

3.2 空间数据插入实验

本组实验通过连续、随机向空间数据库中添加100个点要素,而进行的空间数据插入对比实验。实验的目标要素层是县城点状图层。在测试ArcSDE for SQL Server时,由于在SQL Server企业管理的查询分析器中不支持直接使用SpatialQL操作,所以该插入实验使用了ArcObjects 10.1封装的空间数据插入方法/函数。在向ArcSDE for Oracle空间数据库中插入数据时,是利用ArcSDE API for Oracle的空间操作函数,进而在SQL PLUS中直接使用SpatialQL完成插入实验。在SQLServer和Oracle空间数据库实验中,直接使用了各自支持的SpatialQL语句进行插入测试。实验结果如图2所示。

图2 空间数据插入花费时间曲线图

ArcSDE for SQL Server、ArcSDE for Oracle、SQL Server Spatial和Oracle Spatial的平均插入时间分别为0.974 s、0.904 s、0.97 s、2.196 s。

3.3 空间计算实验

为了对比空间计算性能,本组实验选取线面相交空间计算,即计算并选取黄河(线状)通过的县行政区域(面状)。在测试ArcSDE for SQLServer的计算时间时,本实验选用ArcObjects10.1自带的空间分析方法。SQLServer、ArcSDE for Oracle和Oracle空间数据库采用在查询分析器里,直接运行SpatialQL的方式,并记录所花费的执行时间。实验结果如图3所示。

图3 空间计算花费时间曲线图

ArcSDE for SQL Server、ArcSDE for Oracle、SQL Server Spatial和Oracle Spatial的平均计算时间分别为0.127 s、0.25 s、17.32 s、140.755 s。

3.4 实验分析

为了更好对比上述实验结果,下面将三组实验平均花费时间列在表1中。

表1 三组实验平均花费时间对比s

从表1可以看出,空间数据加载时,直接加载SQL Server空间数据库的速度最快,Oracle空间数据的加载速度最慢;在空间数据插入实验中,ArcSDE for SQL Server、ArcSDE for Oracle和SQL Server的花费时间相近,但Oracle相对较慢;在空间计算实验中,花费时间差距较大,ArcSDE for SQL Server的花费时间最少,而Oracle空间数据库的空间计算效率最低,花费时间达到了140 s。

4 结束语

通过实验分别对ArcSDE for SQL Server、ArcSDE for Oracle、SQL Server和Oracle空间数据库的空间图层加载、要素插入以及空间计算性能进行了对比,结果表明:

(1)在空间数据读取方面,SQL Server 2008R2花费时间最少,性能最好;Oracle Spatial花费时间最长,性能较差。

(2)在空间数据的插入操作中,ArcSDE for Oracle性能最好,Oracle Spatial较差。

(3)在空间计算方面,ArcSDE for SQL Server性能最好,Oracle Spatial性能较差。

总之,在当前常用的商用空间数据管理方式大多是以关系型数据库为主体,通过安装中间件或对数据模型进行扩展实现空间数据的存储和管理。前者需要购买、安装中间件,空间数据结构适应海量数据管理的需要,空间查询与计算性能优越。然而基于中间件的空间数据结构不公开,空间数据的操作依赖特定的软件。通过模型扩展的对象关系型空间数据库不需要安装任何中间件,空间数据结构公开,且为用户提供了大量SpatialQL函数,用户不需要依赖特定的软件就可以直接操作空间数据,但是这种模式的空间数据计算能力相对较弱。

[1]邬伦,刘瑜,张晶,等.地理信息系统——原理、方法和应用[M].北京:科学出版社,2001.

[2]高伟.地理空间数据库引擎的设计与实现[D].郑州:解放军信息工程大学,2007.

[3]黄杏元.地理信息系统概论[M].北京:高等教育出版社,2001.

[4]龚健雅.空间数据库管理系统的概念与发展趋势[J].测绘科学,2001,26(3):4-9.

[5]余莉,何隆化.基于ArcSDE的矿产数据库管理系统开发[J].计算机应用,2009,29(S2):155-157.

[6]薄磊,张华.基于SpatialWare的SQLSERVER空间数据库实现研究[C]//中国地理信息系统协会第四次会员代表大会暨第十一届年会论文集,2007:842-846.

[7]金玲玲,朱紫焱,王喜凤,等.基于SQLServer的空间数据存储器的设计与实现[J].微计算机信息,2007(6):261-263.

[8]柳玲,汪学兵,杨明宇.基于SDX+的GIS空间数据和属性数据管理[J].计算机应用研究,2006(9):166-168.

[9]胡金星,潘懋,宋扬,等.空间数据库实现及其集成技术研究[J].计算机应用研究,2003(3):12-15.

[10]王青山.面向对象地理数据模型的研究与实践[D].郑州:信息工程大学测绘学院,2000.

[11]Wang Wei.Analysis of spatial database index technology[C]// International Conference on Computer Engineering and Technology,2010.

[12]李滨,王青山,冯猛.空间数据库引擎关键技术剖析[J].测绘学院学报,2003,20(1):35-38.

[13]何原荣,李全杰,傅文杰.Oracle Spatial空间数据库开发应用指南[M].北京:测绘出版社,2008.

[14]王祖亮,郭勇.空间数据库的性能优化探讨[J].测绘技术装备,2010(12):43-45.

[15]赵彦庆,陈荣国,袁琳.地理空间数据库性能测试软件的设计与实现[J].地球信息科学学报,2010,12(5):674-678.

XIAO Qiuyong,LI Guangqiang

School of Geosciences and Info-Physics,Central South University,Changsha 410083,China

As an important way to manage spatial data,spatial database is one core component of the GIS.After introducing the basic concepts and the history of spatial database,the performance of managing spatial data is discussed.In order to analyse the capacities that include feature class loading efficiency,features inserting efficiency and spatial computing efficiency,three experiments are designed and applied to compare these capacities.

spatial database;spatial index;spatial computing;ArcSDE;Structured Query Language(SQL)server spatial; oracle spatial;Geographic Information System(GIS)

A

TP311

10.3778/j.issn.1002-8331.1211-0297

XIAO Qiuyong,LI Guangqiang.Comparative experimental analysis for capacities of spatial database.Computer Engineering and Applications,2014,50(21):139-142.

国家高技术研究发展计划(863)(No.2012AA121301)。

肖邱勇(1988—),男,硕士研究生,研究领域为空间信息服务;李光强(1972—),男,博士,讲师,研究领域为空间数据挖掘,时空数据异常探测。E-mail:xiaoqy168@163.com

2012-11-26

2013-02-21

1002-8331(2014)21-0139-04

CNKI出版日期:2013-03-13,http://www.cnki.net/kcms/detail/11.2127.TP.20130313.0946.010.html

猜你喜欢
空间数据图层要素
掌握这6点要素,让肥水更高效
观赏植物的色彩要素在家居设计中的应用
巧用混合图层 制作抽象动感森林
论美术中“七大要素”的辩证关系
元数据驱动的多中心空间数据同步方法研究
也谈做人的要素
图层法在地理区域图读图中的应用
跟我学添加真实的光照效果
浅析“递层优化法”在矿井制图中的应用
基于文件系统的分布式海量空间数据高效存储与组织研究