国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

空間數(shù)據(jù)庫在.NET環(huán)境下的性能分析

2016-04-06 06:38:22錢金戈

錢金戈,董 瀟

(南京工業(yè)大學(xué) 測(cè)繪學(xué)院,江蘇 南京 210009)

?

空間數(shù)據(jù)庫在.NET環(huán)境下的性能分析

錢金戈,董瀟

(南京工業(yè)大學(xué) 測(cè)繪學(xué)院,江蘇 南京 210009)

摘要:空間數(shù)據(jù)庫是存儲(chǔ)與管理空間數(shù)據(jù)的主要方式,也是影響地理信息應(yīng)用系統(tǒng)性能的重要因素。介紹空間存儲(chǔ)技術(shù)的概念與分類,以及.NET開發(fā)環(huán)境下連接空間數(shù)據(jù)庫的發(fā)展歷程;進(jìn)而探討不同的連接驅(qū)動(dòng)類庫在空間加載、數(shù)據(jù)新增以及空間查詢方面的應(yīng)用性能;設(shè)計(jì)三組空間數(shù)據(jù)庫操作試驗(yàn),對(duì)目前常用空間數(shù)據(jù)庫連接方案的性能進(jìn)行對(duì)比分析。

關(guān)鍵詞:空間數(shù)據(jù)庫;.NET平臺(tái);驅(qū)動(dòng)類庫;空間查詢

空間數(shù)據(jù)庫(Spatial Database, SDB)以其強(qiáng)大的空間數(shù)據(jù)存儲(chǔ)與管理功能被廣泛應(yīng)用到地理信息系統(tǒng)軟件開發(fā)領(lǐng)域。同時(shí),作為當(dāng)前空間數(shù)據(jù)引擎最主要載體的關(guān)系型數(shù)據(jù)庫Oracle只能夠通過連接驅(qū)動(dòng)類庫實(shí)現(xiàn)與.NET應(yīng)用程序的相互通信,因此,選擇不同的類庫有可能會(huì)對(duì)應(yīng)用程序的性能產(chǎn)生影響。由于.NET連接Oracle方式較多,性能差異較為明顯,本文從地理信息系統(tǒng)使用角度出發(fā),針對(duì)要素類加載、空間數(shù)據(jù)記錄插入以及空間查詢等多個(gè)方面設(shè)計(jì)相應(yīng)的實(shí)驗(yàn),分別對(duì)連接Oracle Spatial的三種典型驅(qū)動(dòng)(Oracle Client、OLEDB和ODP.NET)以及ArcSDE For Oracle進(jìn)行測(cè)試,并對(duì)比分析在.NET開發(fā)環(huán)境下,不同空間數(shù)據(jù)庫連接方案的性能。

1空間數(shù)據(jù)庫

1.1空間數(shù)據(jù)庫的發(fā)展與分類

空間數(shù)據(jù)庫是指以空間數(shù)據(jù)作為目標(biāo)對(duì)象的專業(yè)數(shù)據(jù)庫,用于存儲(chǔ)一定范圍內(nèi)與空間地理相關(guān)且反映某一主題的數(shù)據(jù)集合,是GIS的核心技術(shù)[1]。同時(shí)它作為地理信息系統(tǒng)重要的組成部分之一,致力于解決在大數(shù)據(jù)量情況下空間數(shù)據(jù)與屬性數(shù)據(jù)的集成管理問題。屬性數(shù)據(jù)也稱非空間數(shù)據(jù),是一類結(jié)構(gòu)化的且明顯區(qū)別于空間數(shù)據(jù)的空間實(shí)體描述信息。從空間數(shù)據(jù)庫概念提出至今,圍繞空間數(shù)據(jù)與屬性數(shù)據(jù)集成存儲(chǔ)方案的更迭,空間數(shù)據(jù)庫技術(shù)從總體上經(jīng)歷了多個(gè)發(fā)展階段。從早期的文件系統(tǒng)到如今的對(duì)象關(guān)系型空間數(shù)據(jù)庫管理模式,伴隨每次管理方式的變革,空間數(shù)據(jù)庫存儲(chǔ)體系結(jié)構(gòu)也發(fā)生了根本性的變化[2]。

空間數(shù)據(jù)引擎,或者說是全關(guān)系型空間數(shù)據(jù)庫管理模式,其本質(zhì)是介于用戶和關(guān)系數(shù)據(jù)庫管理系統(tǒng)之間的中間件技術(shù)[3]。以ESRI公司的ArcSDE為例,該方案是將空間數(shù)據(jù)作為一個(gè)二進(jìn)制的數(shù)據(jù)類型,交由關(guān)系數(shù)據(jù)庫管理系統(tǒng)進(jìn)行存儲(chǔ);而ArcSDE則提供一組空間數(shù)據(jù)操作函數(shù)用于空間數(shù)據(jù)的轉(zhuǎn)換、空間查詢以及存儲(chǔ)管理[4]。因此,在空間數(shù)據(jù)引擎模式下的關(guān)系型數(shù)據(jù)庫僅作為存放空間數(shù)據(jù)的容器,而引擎本身則是空間數(shù)據(jù)進(jìn)出該容器的轉(zhuǎn)換通道。

對(duì)象關(guān)系型空間數(shù)據(jù)庫管理模式是至今最新的空間數(shù)據(jù)存儲(chǔ)方案,該模式出現(xiàn)的直接動(dòng)力源自對(duì)象關(guān)系映射理論在商用數(shù)據(jù)庫中的應(yīng)用與發(fā)展?;趯?duì)象關(guān)系數(shù)據(jù)庫管理技術(shù),主流數(shù)據(jù)庫生產(chǎn)商分別在數(shù)據(jù)庫系統(tǒng)中進(jìn)行擴(kuò)展,使之能夠直接存儲(chǔ)與管理非結(jié)構(gòu)化的空間數(shù)據(jù),比較普及的有Oracle公司的Oracle Spatial、微軟的SQL Server Spatial以及開源的PostGIS等,這些空間數(shù)據(jù)庫具有相似的體系結(jié)構(gòu)。在這種結(jié)構(gòu)下,數(shù)據(jù)庫提供對(duì)空間數(shù)據(jù)類型、函數(shù)與空間索引的支持,基于這種模式開發(fā)的地理信息應(yīng)用程序具備通過空間結(jié)構(gòu)化查詢語言(spatial structured query language,SSQL)訪問空間數(shù)據(jù)的能力[5]。

目前,空間數(shù)據(jù)管理主要是以空間數(shù)據(jù)引擎為主,但對(duì)象關(guān)系型空間數(shù)據(jù)庫作為數(shù)據(jù)庫提供商提出的解決空間數(shù)據(jù)存儲(chǔ)的技術(shù)方案可以充分利用關(guān)系型數(shù)據(jù)庫的內(nèi)核,獲得性能更加優(yōu)異的管理效率。因此,對(duì)象關(guān)系型空間數(shù)據(jù)庫管理模式具有很強(qiáng)的應(yīng)用前景。

1.2.NET連接Oracle類庫介紹

Oracle是較早實(shí)現(xiàn)對(duì)象關(guān)系型空間數(shù)據(jù)存儲(chǔ)方案的數(shù)據(jù)庫管理系統(tǒng)。從Oracle 11g版本發(fā)布開始,Oracle Spatial針對(duì)存儲(chǔ)在Oracle中的空間數(shù)據(jù),提供了一套從空間數(shù)據(jù)常規(guī)操作到空間計(jì)算處理的完整的函數(shù)集。與空間數(shù)據(jù)引擎ArcSDE For Oracle相比,利用Oracle Spatial進(jìn)行地理信息系統(tǒng)應(yīng)用程序的開發(fā)不需要借助額外的開發(fā)工具包,只需借助Oracle連接驅(qū)動(dòng)類庫配合空間結(jié)構(gòu)化查詢語言即可實(shí)現(xiàn).NET平臺(tái)下的開發(fā)工作[6]。

.NET應(yīng)用程序采用驅(qū)動(dòng)類庫的方式實(shí)現(xiàn)與Oracle數(shù)據(jù)庫交互由來已久。在早期的.NET FrameWork2.0中,微軟將System.Data.OracleClient.dll類庫添加進(jìn)程序集中作為.NET平臺(tái)連接Oracle的默認(rèn)驅(qū)動(dòng);隨后System.Data.OleDb.dll的引入標(biāo)志著微軟將通向不同數(shù)據(jù)源的底層應(yīng)用程序接口置于.NET應(yīng)用開發(fā)體系中[7]。Oracle公司方面則在不久之前發(fā)布了經(jīng)過底層優(yōu)化的托管型驅(qū)動(dòng)類庫,Oracle.ManagedData.dll致力于成為.NET開發(fā)Oracle應(yīng)用程序的標(biāo)準(zhǔn)驅(qū)動(dòng)。毫無疑問,選擇不同的驅(qū)動(dòng)類庫將對(duì).NET平臺(tái)下開發(fā)基于Oracle Spatial應(yīng)用程序的性能產(chǎn)生影響[8]。本文的多組實(shí)驗(yàn)項(xiàng)目旨在對(duì)比并分析不同驅(qū)動(dòng)類庫對(duì)于空間數(shù)據(jù)庫應(yīng)用程序造成的性能差異。

1.3空間查詢

空間查詢是地理信息系統(tǒng)應(yīng)用中最重要的一項(xiàng)環(huán)節(jié)。所謂空間查詢,也叫做空間檢索,就是從空間數(shù)據(jù)庫中獲取滿足某一條空間查詢條件的要素集合的功能,其廣泛出現(xiàn)在以土地利用、環(huán)境監(jiān)測(cè)、城市規(guī)劃設(shè)計(jì)、災(zāi)害評(píng)估等為主題的地理信息系統(tǒng)應(yīng)用中[9]。

空間查詢是對(duì)分析空間數(shù)據(jù)的多項(xiàng)功能的統(tǒng)稱,包括拓?fù)潢P(guān)系分析、緩沖區(qū)分析、網(wǎng)絡(luò)分析以及統(tǒng)計(jì)圖表分析等[10]。本文第三組實(shí)驗(yàn)設(shè)計(jì)在不同的數(shù)據(jù)庫模式與驅(qū)動(dòng)類庫的條件下實(shí)現(xiàn)應(yīng)用程序根據(jù)拓?fù)潢P(guān)系的查詢功能,對(duì)比其空間查詢性能。

2對(duì)比試驗(yàn)

如圖1所示,本實(shí)驗(yàn)為Visual CJHJ配合Oracle驅(qū)動(dòng)開發(fā)的地理信息系統(tǒng)應(yīng)用程序;采用基于客戶端/服務(wù)器模式,即程序前端發(fā)出任務(wù),通過驅(qū)動(dòng)訪問運(yùn)行在后臺(tái)的空間數(shù)據(jù)庫。設(shè)計(jì)三組實(shí)驗(yàn)項(xiàng)目分別用于測(cè)試不同的驅(qū)動(dòng)類庫在空間要素加載、空間數(shù)據(jù)新增與空間查詢的時(shí)間開銷,對(duì)比驅(qū)動(dòng)選擇對(duì)于空間數(shù)據(jù)庫應(yīng)用程序性能的影響。與此同時(shí),采用ArcObject10.2連接空間數(shù)據(jù)引擎執(zhí)行相同的實(shí)驗(yàn)項(xiàng)目,橫向?qū)Ρ瓤臻g數(shù)據(jù)引擎與對(duì)象關(guān)系型空間數(shù)據(jù)庫兩種方案在開發(fā)應(yīng)用程序時(shí)的優(yōu)缺點(diǎn)。運(yùn)行在后臺(tái)的關(guān)系數(shù)據(jù)庫為Oracle11g,對(duì)象關(guān)系型空間數(shù)據(jù)庫組件和空間數(shù)據(jù)引擎分別采用Oracle11g自帶的Oracle Spatial以及ArcSDE10.2 For Oracle;從“國家基礎(chǔ)地理信息系統(tǒng)”官方網(wǎng)站下載全國1:400萬矢量地圖,并從中選取“縣級(jí)行政區(qū)域”與“一級(jí)河流”兩個(gè)要素類作為實(shí)驗(yàn)數(shù)據(jù)。

由于應(yīng)用程序進(jìn)程在運(yùn)行時(shí)存在一定程度上的不確定性,而這種不確定性會(huì)增加程序的時(shí)間消耗。為保證實(shí)驗(yàn)結(jié)論的可靠性,每組實(shí)驗(yàn)均連續(xù)多次執(zhí)行,從中選取穩(wěn)定的若干次結(jié)果進(jìn)行對(duì)比分析。

圖1 空間數(shù)據(jù)庫應(yīng)用程序的組織架構(gòu)

2.1空間要素加載

本組實(shí)驗(yàn)的目的是測(cè)試不同組合方案下加載多個(gè)空間要素類的性能。Oracle Spatial的空間要素類加載實(shí)質(zhì)上就是順序遍歷圖層內(nèi)的所有記錄并以圖表的方式展示在應(yīng)用程序前端。實(shí)驗(yàn)所加載的數(shù)據(jù)為一級(jí)河流與縣級(jí)行政區(qū)域,分別為線和面類型的要素。實(shí)驗(yàn)結(jié)果如圖2所示。

圖2 空間要素展示功能時(shí)耗曲線

2.2空間數(shù)據(jù)新增

空間數(shù)據(jù)新增實(shí)驗(yàn)通過連續(xù)向空間數(shù)據(jù)庫新增1 000個(gè)和10 000個(gè)點(diǎn)要素,檢測(cè)4種方案在大數(shù)據(jù)量插入環(huán)境下,在性能上產(chǎn)生的差異。對(duì)于ArcSDE For Oracle,使用ArcObject10.2提供的相關(guān)接口,而3種Oracle Spatial方案采用空間結(jié)構(gòu)化查詢語句實(shí)現(xiàn)空間數(shù)據(jù)的新增。實(shí)驗(yàn)結(jié)果如圖3所示。

圖3 空間數(shù)據(jù)新增功能時(shí)耗曲線

2.3空間查詢

本實(shí)驗(yàn)以線要素類與面要素類的相交運(yùn)算為依據(jù)分析不同組合方案下應(yīng)用程序的空間查詢性能。ArcSDE For Oracle的空間查詢采用ArcObject10.2的查詢接口;Oracle Spatial則直接將對(duì)應(yīng)查詢語句以字符串形式直接提交到空間數(shù)據(jù)庫中。實(shí)驗(yàn)結(jié)果如圖4所示。

圖4 空間查詢時(shí)耗曲線

2.4實(shí)驗(yàn)分析

表1為采用驅(qū)動(dòng)類庫Oracle Client、OleDb與ODP.NET連接Oracle Spatial以及ArcObject10.2連接ArcSDE For Oracle 4種方案的三組實(shí)驗(yàn)的平均時(shí)間消耗。

通過對(duì)Oracle Spatial與ArcSDE For Oracle諸多連接方案的三組實(shí)驗(yàn)過程與結(jié)果的綜合分析,得出以下結(jié)論:

1)從空間數(shù)據(jù)庫管理系統(tǒng)層面看,以O(shè)racle Spatial為代表的對(duì)象關(guān)系型空間數(shù)據(jù)庫在常規(guī)的數(shù)據(jù)操作(如圖層加載、數(shù)據(jù)新增等)上強(qiáng)于以ArcSDE為代表的空間數(shù)據(jù)引擎;但是空間數(shù)據(jù)引擎在空間查詢方面表現(xiàn)出強(qiáng)大的遠(yuǎn)超于對(duì)象關(guān)系型空間數(shù)據(jù)庫的性能。

2)OracleClient方案僅作為其余兩種驅(qū)動(dòng)連接方式的參照實(shí)驗(yàn),在實(shí)際的開發(fā)工作不應(yīng)被考慮。實(shí)驗(yàn)過程中采用OracleClient方案的應(yīng)用程序做統(tǒng)計(jì)查詢時(shí)多次報(bào)出溢出錯(cuò)誤,這說明System.Data.OracleClient.dll驅(qū)動(dòng)存在缺陷。事實(shí)上作為.NET平臺(tái)的開發(fā)商,微軟公司也不推薦開發(fā)人員采用OracleClient驅(qū)動(dòng)連接與Oracle相關(guān)的數(shù)據(jù)庫。

表1 實(shí)驗(yàn)平均時(shí)間消耗對(duì)比

3)從驅(qū)動(dòng)類庫的選擇角度上看,采用Oracle.ManagedData.dll連接Oracle Spatial的ODP.NET方案并非在任何情況下都表現(xiàn)出Oracle公司為連接.NET應(yīng)用程序所做底層優(yōu)化的特質(zhì)。在另外一組新增1 000個(gè)點(diǎn)要素的實(shí)驗(yàn)中,采用ODP.NET的連接比.NET平臺(tái)內(nèi)置的驅(qū)動(dòng)(OracleClient、OleDb)在時(shí)間上要多出一倍。這表明Oracle.ManagedData.dll具有一種漸進(jìn)性的高效率,即隨著空間數(shù)據(jù)量的增大,ODP.NET方案的應(yīng)用程序性能的優(yōu)異性越明顯。

3結(jié)束語

驅(qū)動(dòng)類庫配合對(duì)象關(guān)系型空間數(shù)據(jù)庫的連接模式相比于以傳統(tǒng)的空間數(shù)據(jù)引擎為核心的連接方式,具有更加靈活且能夠充分利用關(guān)系型數(shù)據(jù)庫存取效率的特點(diǎn);該模式在空間數(shù)據(jù)查詢需求較小的地理信息系統(tǒng)開發(fā)中具有極高的應(yīng)用價(jià)值;但由于該模式的空間數(shù)據(jù)查詢性能遠(yuǎn)低于空間數(shù)據(jù)引擎,導(dǎo)致在高查詢需求的地理信息系統(tǒng)中無法取代空間數(shù)據(jù)引擎。因此,在目前的實(shí)際開發(fā)中,要根據(jù)項(xiàng)目的具體需求,合理地選擇連接方式。

參考文獻(xiàn)

[1]肖邱勇,李光強(qiáng).空間數(shù)據(jù)庫性能對(duì)比實(shí)驗(yàn)分析[J].計(jì)算機(jī)工程與應(yīng)用,2014,50(21):139-142.

[2]龔健雅.空間數(shù)據(jù)庫管理系統(tǒng)的概念與發(fā)展趨勢(shì)[J].測(cè)繪科學(xué),2001,26(3):4-9.

[3]張垠. 基于ArcSDE的GIS空間數(shù)據(jù)存儲(chǔ)分析[D].上海:華東師范大學(xué),2005.

[4]程秀昌.空間數(shù)據(jù)庫管理系統(tǒng)概論[M].北京:科學(xué)出版社,2012.

[5]徐承志,許承瑜,錢鐵云. 基于GIS系統(tǒng)的空間查詢語言[J].計(jì)算機(jī)科學(xué),2010,6:206-210.

[6]王寶武,董慧君. 基于Oracle Spatial的Web實(shí)現(xiàn)方案[J]. 信息技術(shù)與信息化,2007,5:123-125.

[7]方華,盛蕾. 基于ODP.NET的Oracle數(shù)據(jù)庫訪問優(yōu)化[J]. 計(jì)算機(jī)與數(shù)字工程,2006,8:142-144.

[8]蔡勇,鄧躍進(jìn),余旭. 基于.Net的WebGIS服務(wù)開發(fā)[J]. 黑龍江工程學(xué)院學(xué)報(bào)(自然科學(xué)版),2004(3):14-16.

[9]李元文,耿富強(qiáng).基于ODP.NET訪問Oracle空間數(shù)據(jù)[J].礦山測(cè)量.2014,6(3):3-6.

[10] 何原榮,李全杰,傅文杰.Oracle Spatial空間數(shù)據(jù)庫開發(fā)應(yīng)用指南[M].北京:測(cè)繪出版社,2008.

[責(zé)任編輯:郝麗英]

Performance analysis for spatial database in .NET environment

QIAN Jinge,DONG Xiao

(School of Surveying and Mapping, Nanjing Tech University,Nanjing 210009,China)

Abstract:Spatial database is the primary manner to store and manage the spatial data, also as one of the most important factor to affect the performance of geographic information system. After introducing the concept and classification for spatial data storage technology, this paper discusses the development process to connect spatial database under the .NET environment. In order to analyze the connecting capacities that include feature class loading, features inserting and spatial querying, four experiments are designed and applied to comparing these capacities.

Key words:spatial database; .NET framework; class library; spatial querying

中圖分類號(hào):P208

文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1671-4679(2016)01-0015-04

作者簡(jiǎn)介:錢金戈(1990-),男,碩士研究生,研究方向:地理信息系統(tǒng)開發(fā)與應(yīng)用.

收稿日期:2015-10-11

新绛县| 杭锦后旗| 青浦区| 富锦市| 米泉市| 呈贡县| 乐业县| 平湖市| 华阴市| 宁乡县| 巴里| 德庆县| 古交市| 佛冈县| 共和县| 阳城县| 葫芦岛市| 黄山市| 明水县| 灵寿县| 广西| 库车县| 察隅县| 新丰县| 和林格尔县| 岢岚县| 宣汉县| 松阳县| 徐水县| 稻城县| 靖江市| 大竹县| 吉安市| 万山特区| 广饶县| 房山区| 中牟县| 四会市| 西充县| 道孚县| 汕头市|