肖邱勇,李光強
中南大學地球科學與信息物理學院,長沙 410083
空間數(shù)據(jù)庫性能對比實驗分析
肖邱勇,李光強
中南大學地球科學與信息物理學院,長沙 410083
空間數(shù)據(jù)庫是管理空間數(shù)據(jù)的重要方式,亦是GIS的重要組成部分。介紹了空間數(shù)據(jù)庫的概念和發(fā)展歷程,分析了影響空間數(shù)據(jù)庫性能的因素,進而探討了圖層加載、要素插入和空間計算等應用性能,設計了三組空間數(shù)據(jù)庫的操作實驗,對目前常用的幾種空間數(shù)據(jù)庫管理空間數(shù)據(jù)的性能進行了對比分析。
空間數(shù)據(jù)庫;空間索引;空間計算;ArcSDE;SQL Server空間數(shù)據(jù)庫;oracle spatial;地理信息系統(tǒng)
地理信息系統(tǒng)之所以受到如此廣泛的應用和關(guān)注,主要在于它強大的空間數(shù)據(jù)管理和分析功能??臻g數(shù)據(jù)是GIS的基礎[2],然而在GIS實際應用中,空間數(shù)據(jù)的存儲、管理和分析大多依賴空間數(shù)據(jù)庫(Spatial Database,SDB),因此空間數(shù)據(jù)庫系統(tǒng)是GIS的關(guān)鍵組成部分,也是影響GIS使用的重要因素。當前,人們在搭建空間數(shù)據(jù)庫時通常有兩種方法:(1)借助第三方軟件的空間數(shù)據(jù)網(wǎng)關(guān)和后臺關(guān)系數(shù)據(jù)庫管理系統(tǒng),如ESRI的ArcSDE軟件;(2)直接利用支持空間數(shù)據(jù)管理的大型數(shù)據(jù)庫管理系統(tǒng),如SQLServer2008R2、Oracle11g2等。由于空間數(shù)據(jù)管理方式較多,功能各異,性能千差萬別,空間數(shù)據(jù)的管理人員在選擇和使用空間數(shù)據(jù)時難以抉擇,因此本文從GIS使用角度出發(fā),針對空間圖層加載、要素插入和空間計算三個方面設計了三組實驗,分別對ArcSDE 10.1 for SQL Server 2008R2、ArcSDE 10.1 for Oracle 11g2、SQL Server 2008R2和Oracle 11g2的空間數(shù)據(jù)管理性能進行測試,并對比分析了空間數(shù)據(jù)管理的性能。
2.1 空間數(shù)據(jù)庫的概念和發(fā)展
空間數(shù)據(jù)庫是一種應用于地理空間數(shù)據(jù)處理與分析領域的、具有工程性質(zhì)的數(shù)據(jù)庫,它是GIS的關(guān)鍵技術(shù)。作為地理信息系統(tǒng)的重要組成部分,空間數(shù)據(jù)庫一直受到GIS工作者和研究人員的高度重視。總的來說,空間數(shù)據(jù)庫具有(1)數(shù)據(jù)量龐大;(2)高可訪問性;(3)數(shù)據(jù)模型復雜;(4)屬性數(shù)據(jù)和空間數(shù)據(jù)的集成管理;(5)應用范圍廣泛等特點[3]。
由于空間數(shù)據(jù)的特殊性和復雜性,早期的商用數(shù)據(jù)庫管理系統(tǒng)很難滿足空間數(shù)據(jù)管理的要求。圍繞空間數(shù)據(jù)管理方法,先后出現(xiàn)了文件與關(guān)系數(shù)據(jù)庫混合管理模式、全關(guān)系型空間數(shù)據(jù)庫管理模式、對象關(guān)系型數(shù)據(jù)庫管理模式和面向?qū)ο髷?shù)據(jù)庫管理模式[4]。由于文件與關(guān)系數(shù)據(jù)庫混合管理模式的數(shù)據(jù)安全性、一致性和完整性難以得到保證,面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)尚不夠成熟,且價格昂貴,因此這兩種管理方式在大型GIS應用領域很少使用。下面簡要介紹全關(guān)系型和對象關(guān)系型管理模式。
全關(guān)系型空間數(shù)據(jù)庫管理模式下,關(guān)系數(shù)據(jù)庫管理系統(tǒng)不需要做任何擴展,GIS軟件商在此基礎上開發(fā)相應數(shù)據(jù)轉(zhuǎn)換中間件(有時稱為網(wǎng)關(guān)或引擎),使之不僅能管理結(jié)構(gòu)化的屬性數(shù)據(jù),而且能管理非結(jié)構(gòu)化的空間數(shù)據(jù),這是目前較為流行的一種空間數(shù)據(jù)管理方式。常用的空間數(shù)據(jù)管理中間件有ESRI的ArcSDE[5]、MapInfo的Spatiaware[6]、中地公司的MAPGIS-SDE[7]和超圖公司的SuperMap SDX+[8]等。
流通工作是圖書館工作的主要組成部分,目前大部分流通館員受傳統(tǒng)思想意識影響,以人為本工作就是上書、整理書架、借還圖書,日復一日年復一年的重復著同樣的工作,這種單一枯燥無味而且繁重的勞動,使得流通部館員情緒煩躁,對工作沒有激情,思想麻痹,不思進取,缺乏創(chuàng)新意識,情況嚴重的時候甚至會對讀者脾氣暴躁、服務態(tài)度惡劣,以至于背離以人為本的服務理念,跟不上圖書館服務的發(fā)展趨勢。
對象關(guān)系型數(shù)據(jù)庫管理模式是隨著面向?qū)ο蠹夹g(shù)在關(guān)系數(shù)據(jù)庫中的深入應用,由數(shù)據(jù)庫軟件商設計的空間數(shù)據(jù)存儲、管理模式,進而在關(guān)系型數(shù)據(jù)庫中可以直接存儲、管理空間數(shù)據(jù)的一種方式。目前許多成熟的大型關(guān)系數(shù)據(jù)庫大多擴展了空間數(shù)據(jù)管理功能,如SQL Server Spatial和Oracle Spatial等,這些數(shù)據(jù)庫中不僅支持點、線、面等常用的空間要素模型,而且提供了操作空間要素的空間數(shù)據(jù)操作語言(Spatial Query Languange,SpatialQL),用戶可以直接使用SpatialQL進行空間查詢或計算[9]。
總之,當前空間數(shù)據(jù)管理仍然是以關(guān)系數(shù)據(jù)庫為主,由于空間數(shù)據(jù)的復雜性和特殊性,空間數(shù)據(jù)庫中空間數(shù)據(jù)的組織和管理不同于一般事務性數(shù)據(jù)庫。為了實現(xiàn)空間數(shù)據(jù)的高效查詢和分析,空間數(shù)據(jù)庫都會發(fā)展一種特殊的索引方法——空間索引,這也是影響空間數(shù)據(jù)計算效率的主要因素。
2.2 空間索引
空間索引是依據(jù)空間要素的位置和形狀或空間要素之間的某種空間關(guān)系,按一定順序排列的一種輔助性空間數(shù)據(jù)結(jié)構(gòu)[10],其作用于空間運算和空間要素之間,通過篩選排除大量與空間操作無關(guān)的空間要素,縮小空間要素的搜索范圍,從而提高空間計算的速度和效率。
目前,常見的空間索引有規(guī)則網(wǎng)格索引、BSP樹、KDB樹、R樹、R+樹和CELL樹等[11]。雖然空間索引多種多樣,但其基本原理是相似的,即都采用分割原理將研究空間劃分為若干區(qū)域,并給每個區(qū)域賦以唯一標識[12]。在索引時,依據(jù)空間計算規(guī)則計算出索引區(qū)域的標識,進而利用索引區(qū)域標識提取相應區(qū)域的空間要素,從而大大降低空間計算的復雜度。常用的索引分割方法有規(guī)則分割和基于對象的分割兩種。Oracle Spatial的空間索引比較靈活,引入了多種索引機制,如R樹索引和四叉樹索引;SQL Server Spatial的索引是一個多級網(wǎng)格索引;而ArcSDE則是基于不同的數(shù)據(jù)庫管理系統(tǒng)而采用不同的空間索引方式,比如在Oracle數(shù)據(jù)庫中既可以使用R樹索引,也可以使用多級網(wǎng)格索引,而在SQL Server中則使用多級網(wǎng)格索引。本文第三組空間計算的實驗,旨在對比不同空間索引模式下的空間計算性能。
2.3 空間計算
空間計算有時又稱空間查詢或空間檢索,是指從空間數(shù)據(jù)庫中查詢出滿足某一條件空間要素集的過程,空間計算條件都與空間位置、空間關(guān)系相關(guān)[13],也是GIS區(qū)別于其他計算機圖形系統(tǒng)和事務性數(shù)據(jù)庫管理系統(tǒng)的主要特征。在GIS應用中,空間計算的使用也最為廣泛,如城市公共設施建設、商業(yè)選址、路徑優(yōu)化、災害評估等等,因此空間計算的性能是影響GIS應用的關(guān)鍵。
空間計算的形式多種多樣,包括緩沖區(qū)分析、鄰近分析、空間分離、空間相交、空間包含、空間覆蓋等。例如點的緩沖查詢,是查詢與距離目標點一定距離內(nèi)的空間要素集合;線的相交查詢,是查詢與目標線相交的空間要素集合。本文的第三組實驗是線要素與面要素空間相交計算性能的對比實驗,以分析不同空間數(shù)據(jù)庫管理模式的空間計算性能。
2.4 空間數(shù)據(jù)庫性能
空間數(shù)據(jù)庫具有很強的專業(yè)性,影響一個空間數(shù)據(jù)庫性能的因素也非常多,包括服務器硬件條件、內(nèi)存大小、軟件優(yōu)化、磁盤優(yōu)化以及數(shù)據(jù)組織和效率等[14]。空間數(shù)據(jù)庫性能的優(yōu)化需要很強的專業(yè)知識和豐富的實踐經(jīng)驗,要求比較高。
由于空間數(shù)據(jù)庫是用來存儲、管理空間數(shù)據(jù)的系統(tǒng),所以對空間數(shù)據(jù)的操作能力也就成為評價空間數(shù)據(jù)庫的重要指標之一[15]。從一般的GIS應用角度分析,空間數(shù)據(jù)的操作通常包括空間圖層的加載、空間要素的插入和空間計算等方面,這也是廣大GIS用戶評價GIS性能的重要參考。為此本文設計了三組實驗,對比分析不同空間數(shù)據(jù)庫的數(shù)據(jù)加載、要素插入、空間計算的能力。
本實驗利用C#2010和ArcObject 10.1開發(fā)了客戶/服務模式的程序,即前端運行桌面版客戶程序,加載后臺空間數(shù)據(jù)庫中的空間數(shù)據(jù),設計了三組實驗用于測試不同類型空間數(shù)據(jù)庫中的空間圖層加載、空間要素插入、空間計算的時間花銷,對比空間數(shù)據(jù)庫的性能。后臺空間數(shù)據(jù)的管理分別使用ArcSDE 10.1 for SQL Server 2008 R2、ArcSDE 10.1 for Oracle 11g2、SQL Server 2008 R2和Oracle 11g2。系統(tǒng)運行的設備為戴爾2950服務器,配備兩顆Xeon E5405 2 GHz CPU和4 GB內(nèi)存,操作系統(tǒng)為Windows Server 2008 R2 Enterprise。實驗數(shù)據(jù)是在“國家基礎地理信息系統(tǒng)”網(wǎng)站免費下載的全國1∶400萬矢量地圖,包括國界、省界、縣級、首都和省級行政中心、地市級以上居民地、三級以上河流以及主要鐵路。
為了保證對比實驗的可靠性,本章每組實驗均連續(xù)執(zhí)行40次,從中選取穩(wěn)定的連續(xù)20次執(zhí)行時間進行對比。
3.1 空間圖層加載實驗
本組實驗利用ArcObject10.1自帶的方法/函數(shù)加載空間數(shù)據(jù),并連續(xù)運行40次,然后從中截取相對穩(wěn)定的連續(xù)20次數(shù)據(jù)加載花銷時間,作為本實驗的對比數(shù)據(jù)。實驗所加載的數(shù)據(jù)包括國界、省界、居民地、河流等18個圖層,其中點要素圖層3個,線要素圖層10個,面要素圖層5個。為使得本實驗更加客觀,在加載所有圖層數(shù)據(jù)時,均不進行任何渲染操作。實驗結(jié)果如圖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 空間數(shù)據(jù)插入實驗
本組實驗通過連續(xù)、隨機向空間數(shù)據(jù)庫中添加100個點要素,而進行的空間數(shù)據(jù)插入對比實驗。實驗的目標要素層是縣城點狀圖層。在測試ArcSDE for SQL Server時,由于在SQL Server企業(yè)管理的查詢分析器中不支持直接使用SpatialQL操作,所以該插入實驗使用了ArcObjects 10.1封裝的空間數(shù)據(jù)插入方法/函數(shù)。在向ArcSDE for Oracle空間數(shù)據(jù)庫中插入數(shù)據(jù)時,是利用ArcSDE API for Oracle的空間操作函數(shù),進而在SQL PLUS中直接使用SpatialQL完成插入實驗。在SQLServer和Oracle空間數(shù)據(jù)庫實驗中,直接使用了各自支持的SpatialQL語句進行插入測試。實驗結(jié)果如圖2所示。
圖2 空間數(shù)據(jù)插入花費時間曲線圖
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 空間計算實驗
為了對比空間計算性能,本組實驗選取線面相交空間計算,即計算并選取黃河(線狀)通過的縣行政區(qū)域(面狀)。在測試ArcSDE for SQLServer的計算時間時,本實驗選用ArcObjects10.1自帶的空間分析方法。SQLServer、ArcSDE for Oracle和Oracle空間數(shù)據(jù)庫采用在查詢分析器里,直接運行SpatialQL的方式,并記錄所花費的執(zhí)行時間。實驗結(jié)果如圖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 實驗分析
為了更好對比上述實驗結(jié)果,下面將三組實驗平均花費時間列在表1中。
表1 三組實驗平均花費時間對比s
從表1可以看出,空間數(shù)據(jù)加載時,直接加載SQL Server空間數(shù)據(jù)庫的速度最快,Oracle空間數(shù)據(jù)的加載速度最慢;在空間數(shù)據(jù)插入實驗中,ArcSDE for SQL Server、ArcSDE for Oracle和SQL Server的花費時間相近,但Oracle相對較慢;在空間計算實驗中,花費時間差距較大,ArcSDE for SQL Server的花費時間最少,而Oracle空間數(shù)據(jù)庫的空間計算效率最低,花費時間達到了140 s。
通過實驗分別對ArcSDE for SQL Server、ArcSDE for Oracle、SQL Server和Oracle空間數(shù)據(jù)庫的空間圖層加載、要素插入以及空間計算性能進行了對比,結(jié)果表明:
(1)在空間數(shù)據(jù)讀取方面,SQL Server 2008R2花費時間最少,性能最好;Oracle Spatial花費時間最長,性能較差。
(2)在空間數(shù)據(jù)的插入操作中,ArcSDE for Oracle性能最好,Oracle Spatial較差。
(3)在空間計算方面,ArcSDE for SQL Server性能最好,Oracle Spatial性能較差。
總之,在當前常用的商用空間數(shù)據(jù)管理方式大多是以關(guān)系型數(shù)據(jù)庫為主體,通過安裝中間件或?qū)?shù)據(jù)模型進行擴展實現(xiàn)空間數(shù)據(jù)的存儲和管理。前者需要購買、安裝中間件,空間數(shù)據(jù)結(jié)構(gòu)適應海量數(shù)據(jù)管理的需要,空間查詢與計算性能優(yōu)越。然而基于中間件的空間數(shù)據(jù)結(jié)構(gòu)不公開,空間數(shù)據(jù)的操作依賴特定的軟件。通過模型擴展的對象關(guān)系型空間數(shù)據(jù)庫不需要安裝任何中間件,空間數(shù)據(jù)結(jié)構(gòu)公開,且為用戶提供了大量SpatialQL函數(shù),用戶不需要依賴特定的軟件就可以直接操作空間數(shù)據(jù),但是這種模式的空間數(shù)據(jù)計算能力相對較弱。
[1]鄔倫,劉瑜,張晶,等.地理信息系統(tǒng)——原理、方法和應用[M].北京:科學出版社,2001.
[2]高偉.地理空間數(shù)據(jù)庫引擎的設計與實現(xiàn)[D].鄭州:解放軍信息工程大學,2007.
[3]黃杏元.地理信息系統(tǒng)概論[M].北京:高等教育出版社,2001.
[4]龔健雅.空間數(shù)據(jù)庫管理系統(tǒng)的概念與發(fā)展趨勢[J].測繪科學,2001,26(3):4-9.
[5]余莉,何隆化.基于ArcSDE的礦產(chǎn)數(shù)據(jù)庫管理系統(tǒng)開發(fā)[J].計算機應用,2009,29(S2):155-157.
[6]薄磊,張華.基于SpatialWare的SQLSERVER空間數(shù)據(jù)庫實現(xiàn)研究[C]//中國地理信息系統(tǒng)協(xié)會第四次會員代表大會暨第十一屆年會論文集,2007:842-846.
[7]金玲玲,朱紫焱,王喜鳳,等.基于SQLServer的空間數(shù)據(jù)存儲器的設計與實現(xiàn)[J].微計算機信息,2007(6):261-263.
[8]柳玲,汪學兵,楊明宇.基于SDX+的GIS空間數(shù)據(jù)和屬性數(shù)據(jù)管理[J].計算機應用研究,2006(9):166-168.
[9]胡金星,潘懋,宋揚,等.空間數(shù)據(jù)庫實現(xiàn)及其集成技術(shù)研究[J].計算機應用研究,2003(3):12-15.
[10]王青山.面向?qū)ο蟮乩頂?shù)據(jù)模型的研究與實踐[D].鄭州:信息工程大學測繪學院,2000.
[11]Wang Wei.Analysis of spatial database index technology[C]// International Conference on Computer Engineering and Technology,2010.
[12]李濱,王青山,馮猛.空間數(shù)據(jù)庫引擎關(guān)鍵技術(shù)剖析[J].測繪學院學報,2003,20(1):35-38.
[13]何原榮,李全杰,傅文杰.Oracle Spatial空間數(shù)據(jù)庫開發(fā)應用指南[M].北京:測繪出版社,2008.
[14]王祖亮,郭勇.空間數(shù)據(jù)庫的性能優(yōu)化探討[J].測繪技術(shù)裝備,2010(12):43-45.
[15]趙彥慶,陳榮國,袁琳.地理空間數(shù)據(jù)庫性能測試軟件的設計與實現(xiàn)[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.
國家高技術(shù)研究發(fā)展計劃(863)(No.2012AA121301)。
肖邱勇(1988—),男,碩士研究生,研究領域為空間信息服務;李光強(1972—),男,博士,講師,研究領域為空間數(shù)據(jù)挖掘,時空數(shù)據(jù)異常探測。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