張偉偉,高 峰,樂 恒
(1.寧波市規(guī)劃與地理信息中心,浙江 寧波 315042)
地理空間數(shù)據(jù)庫性能優(yōu)化原則研究
張偉偉1,高 峰1,樂 恒1
(1.寧波市規(guī)劃與地理信息中心,浙江 寧波 315042)
以提高企業(yè)級地理空間數(shù)據(jù)庫效率為出發(fā)點,總結(jié)了Oracle數(shù)據(jù)庫與ArcSDE軟件性能優(yōu)化的原則,結(jié)合實際給出了數(shù)據(jù)庫性能優(yōu)化的一些建議,并將上述原則應用于海量地理空間數(shù)據(jù)庫的優(yōu)化,有效提升了數(shù)據(jù)庫性能。
地理空間數(shù)據(jù)庫;Oracle性能優(yōu)化;ArcSDE性能優(yōu)化
地理信息系統(tǒng)是當前智慧城市建設(shè)的核心技術(shù),其應用已延伸到城市建設(shè)與管理的各個角落,范圍覆蓋了規(guī)劃、國土、交通、電力、水利等領(lǐng)域。隨著智慧城市建設(shè)的逐步推進,積累的空間數(shù)據(jù)種類日益豐富,數(shù)據(jù)規(guī)模也直線上升,如何高效管理和使用海量空間數(shù)據(jù),實現(xiàn)空間數(shù)據(jù)庫的高性能部署與安全運維管理是項目設(shè)計與運維人員關(guān)注的熱點。由于空間數(shù)據(jù)的復雜性與非結(jié)構(gòu)化特征,使得地理空間數(shù)據(jù)庫的存儲與管理也相對復雜。圍繞著空間數(shù)據(jù)庫技術(shù)的研究主要從空間數(shù)據(jù)庫的理論、設(shè)計、應用及性能優(yōu)化4個方面開展。文獻[1,2]從空間數(shù)據(jù)庫的理論角度描述了空間數(shù)據(jù)庫的基本特征、結(jié)構(gòu)及內(nèi)容;文獻[1,3,4]從空間數(shù)據(jù)庫設(shè)計方面論述了空間數(shù)據(jù)庫管理系統(tǒng)的技術(shù)革新歷程及空間數(shù)據(jù)庫的常用模型;文獻[3,5-8]描述了使用空間數(shù)據(jù)庫技術(shù)解決特定領(lǐng)域問題的典型案例;文獻[9,10]從空間數(shù)據(jù)庫的存儲、運維角度總結(jié)了數(shù)據(jù)庫性能提升的方法。
地理空間數(shù)據(jù)的管理經(jīng)歷了由傳統(tǒng)的文件系統(tǒng)方式到對象關(guān)系數(shù)據(jù)庫方式的過程,在數(shù)據(jù)管理能力上,從小數(shù)據(jù)量管理向海量數(shù)據(jù)管理發(fā)展[3]。在當前大數(shù)據(jù)背景下,針對空間圖形數(shù)據(jù)與屬性數(shù)據(jù)統(tǒng)一存儲與管理的應用需求,常用的兩種解決方案是:①空間數(shù)據(jù)庫擴展技術(shù),如Oracle數(shù)據(jù)庫的Oracle Spatial和Informix數(shù)據(jù)庫的Spatial DataBlade技術(shù);②中間件技術(shù),如ESRI公司的ArcSDE和MapInfo公司的SpatialWare等產(chǎn)品。數(shù)據(jù)庫+中間件(空間數(shù)據(jù)引擎)的空間數(shù)據(jù)存儲與管理解決方案占據(jù)主流,其中以O(shè)racle數(shù)據(jù)庫+ArcSDE中間件模式最為常用,本文也以此為例,總結(jié)了地理空間數(shù)據(jù)庫性能優(yōu)化的主要技術(shù)原則。
商業(yè)數(shù)據(jù)庫與GIS中間件技術(shù)相結(jié)合改變了傳統(tǒng)GIS的應用模式,為空間數(shù)據(jù)一體化管理提供了高效、穩(wěn)定的解決方案,較好地解決了多用戶在線編輯、數(shù)據(jù)完整性和數(shù)據(jù)安全等核心問題。在Oracle+ArcSDE的存儲模式下,Oracle數(shù)據(jù)庫是數(shù)據(jù)存儲的容器,ArcSDE中間件則是空間數(shù)據(jù)的存取通道。圖1是Oracle數(shù)據(jù)庫+ArcSDE中間件的體系結(jié)構(gòu)[11]。
圖1 ArcSDE軟件體系結(jié)構(gòu)
Oracle數(shù)據(jù)庫系統(tǒng)由實例和數(shù)據(jù)庫兩大部分組成[12],如圖2所示。數(shù)據(jù)庫實例優(yōu)化的出發(fā)點是減少磁盤讀寫次數(shù),數(shù)據(jù)庫文件優(yōu)化的出發(fā)點是平衡磁盤讀寫壓力。
圖2 Oracle數(shù)據(jù)庫體系結(jié)構(gòu)
2.1 數(shù)據(jù)庫實例優(yōu)化
數(shù)據(jù)庫實例由共享池、數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)等組成[12],其優(yōu)化方法重點有以下幾個方面。
1)共享池優(yōu)化。共享池由兩個緩沖區(qū)組成,分別是庫緩沖區(qū)和數(shù)據(jù)字典緩沖區(qū),其作用是存放頻繁使用的SQL語句和數(shù)據(jù)字典對象。要提高共享池命中率需遵循以下原則:①SQL語句類型較多,適當增加共享池容量,以減少SQL語句硬解析。②將重用率高的SQL語句保留在庫緩存中,以提高庫緩存命中率。③ 為大規(guī)模PL/SQL程序?qū)ο箢A留空間,增大共享池保留區(qū)大小,將這些較大對象放入其中。④將一些常用的數(shù)據(jù)字典保留在數(shù)據(jù)字典緩沖區(qū)。
2)數(shù)據(jù)緩沖區(qū)優(yōu)化。數(shù)據(jù)緩沖區(qū)是用于存儲用戶請求的數(shù)據(jù),如果請求的數(shù)據(jù)已經(jīng)在緩沖區(qū)中,Oracle數(shù)據(jù)庫會直接從緩沖區(qū)讀取該數(shù)據(jù)返回給用戶,而不需要重新從磁盤文件讀取,因此,在這種機制下,數(shù)據(jù)查詢所需時間將以幾個數(shù)量級減少。其優(yōu)化主要遵循以下幾個原則:①對讀寫較為頻繁的數(shù)據(jù)庫適當增加其緩沖區(qū)容量。②使用多個緩沖池,并將不同訪問模式的數(shù)據(jù)對象放到不同緩沖池中,例如將規(guī)模較大的表存放在recycle pool,以免將部分熱塊從default pool中移除。③將一些常用且規(guī)模較小的表保留在內(nèi)存中。
3)日志緩沖區(qū)優(yōu)化。日志緩沖區(qū)用于記錄數(shù)據(jù)塊的修改信息。數(shù)據(jù)編輯操作會產(chǎn)生重做記錄,Oracle數(shù)據(jù)庫系統(tǒng)默認先將這些重做記錄寫入日志緩沖區(qū),在日志緩沖區(qū)達到一定大小或發(fā)生檢查點時,再將其內(nèi)容寫入磁盤上的日志文件。其優(yōu)化主要遵循以下兩個原則:①增加讀寫較為頻繁的數(shù)據(jù)庫日志緩沖區(qū)大小。②降低檢查點發(fā)生的頻率,減少寫日志文件的次數(shù)。
4)Java池。當應用程序需要在數(shù)據(jù)庫中運行Java存儲過程時需要使用Java池,此池用作實例化Java對象所需的堆空間。因此,對于用到Java語言編寫存儲過程的數(shù)據(jù)庫則需要適當調(diào)整其容量。
5)大型池。如果使用的數(shù)據(jù)庫服務器是共享模式或并行模式,或者將數(shù)據(jù)備份到磁帶設(shè)備時,需要對大型池進行適當調(diào)整。
2.2 數(shù)據(jù)庫文件優(yōu)化
Oracle數(shù)據(jù)庫文件由數(shù)據(jù)文件、控制文件、日志文件3大文件系統(tǒng)組成,具體優(yōu)化原則如下:
1)數(shù)據(jù)文件存儲優(yōu)化。數(shù)據(jù)文件存儲優(yōu)化的出發(fā)點是通過重新組織數(shù)據(jù)文件,實現(xiàn)數(shù)據(jù)讀寫壓力分流,提升數(shù)據(jù)庫并發(fā)訪問效率。數(shù)據(jù)文件存儲優(yōu)化可以將大數(shù)據(jù)文件拆分,并將熱點數(shù)據(jù)文件存放在不同磁盤來實現(xiàn)。有效的數(shù)據(jù)文件拆分與分開存儲需要從整體上考慮兩個因素:數(shù)據(jù)量和訪問頻率,訪問頻率高且規(guī)模大的數(shù)據(jù)存儲在一個或多個數(shù)據(jù)文件中,并存放在不同的物理硬盤。
2)重做日志文件存儲優(yōu)化。重做日志文件存儲優(yōu)化的出發(fā)點是提高寫日志的效率,并保障數(shù)據(jù)庫的安全穩(wěn)定。寫日志效率可以通過創(chuàng)建多組重做日志并保證日志文件容量足夠大來提高,這樣可避免頻繁的日志切換;提高數(shù)據(jù)庫安全性可以通過在日志文件組中增加組成員,并將這些成員存放在不同物理磁盤來實現(xiàn),組成員的數(shù)據(jù)內(nèi)容完全相同,當一塊物理磁盤的日志文件損壞后,數(shù)據(jù)庫實例仍能夠訪問其他物理磁盤的日志文件,從而保證數(shù)據(jù)庫正常運行。
重做日志文件組數(shù)和組成員數(shù)過多會造成寫日志耗費較多系統(tǒng)資源,一般情況下,重做日志文件組數(shù)為3組且每組成員個數(shù)為3個較為合適。
3)控制文件存儲優(yōu)化??刂莆募鎯φ{(diào)整的出發(fā)點是保障其安全,可以通過復制多個控制文件到不同物理磁盤來實現(xiàn),當一個物理磁盤的控制文件損壞時,數(shù)據(jù)庫實例仍能夠訪問其他磁盤的控制文件,從而保證數(shù)據(jù)庫正常運行。
理論上控制文件個數(shù)最多為8個,但并不是越多越好,因為當 Oracle 更新控制文件時,會將所有控制文件全部進行更新,影響數(shù)據(jù)庫性能,建議控制文件復制3份并存放在不同的物理磁盤。
基于Oracle+ArcSDE模式存儲的空間數(shù)據(jù)在數(shù)據(jù)庫中由一系列數(shù)據(jù)表共同組成,在默認情況下,所有系統(tǒng)表和數(shù)據(jù)表都統(tǒng)一存儲在一個表空間??臻g索引、數(shù)據(jù)庫版本編輯等因素也會影響數(shù)據(jù)庫并發(fā)訪問性能。
1)表存儲優(yōu)化。通過ArcSDE存儲的空間數(shù)據(jù)由 B表(Business Table)、F表(Feature Table)、S表(Spatial Index Table)和Oracle索引表共同組成[12],默認情況下這些表存儲在同一個數(shù)據(jù)文件,這樣會導致數(shù)據(jù)讀寫過程中會出現(xiàn)較多等待事件,降低讀寫效率。ArcSDE數(shù)據(jù)存儲遵循減少I/O沖突原則,具體解決方法是將空間數(shù)據(jù)的B表、F表、S表和Oracle索引分配到不同的數(shù)據(jù)文件,并按照讀寫頻率分不同物理磁盤組合存放。
2)空間索引優(yōu)化。ArcSDE空間數(shù)據(jù)庫體系使用空間索引機制,這樣能夠有效提高數(shù)據(jù)訪問效率,對于更新較為頻繁的數(shù)據(jù),需要定期更新空間索引,對一些數(shù)據(jù)量較大的要素類建立二級索引。
3)版本管理優(yōu)化。版本數(shù)據(jù)庫在不斷編輯過程中會產(chǎn)生較多的冗余信息,影響數(shù)據(jù)庫查詢、編輯效率,需要使用版本壓縮技術(shù)清除冗余信息。
地理空間數(shù)據(jù)庫性能直接影響著各應用系統(tǒng)的數(shù)據(jù)讀寫效率,默認的軟件配置在性能表現(xiàn)方面并不理想,必須對其進行優(yōu)化才能發(fā)揮其最大作用。筆者以O(shè)racle數(shù)據(jù)庫和ArcSDE中間件的體系結(jié)構(gòu)為基礎(chǔ),以減少磁盤讀寫次數(shù)和平衡磁盤讀寫壓力為原則,分析了各組成部分對地理空間數(shù)據(jù)庫性能的影響,并結(jié)合實踐經(jīng)驗提出了整體的性能優(yōu)化原則。
地理空間數(shù)據(jù)庫規(guī)模不斷擴大,其應用需求也在不斷變化,這就決定了地理空間數(shù)據(jù)庫的性能優(yōu)化將是一項系統(tǒng)的、長期的工程。本文給出的這些方法只是一些指導性的原則,并沒有給出各參數(shù)的具體數(shù)值,應用時需要根據(jù)各階段的數(shù)據(jù)資源特點及其訪問情況進行調(diào)整。
[1] 龔健雅.空間數(shù)據(jù)庫管理系統(tǒng)的概念與發(fā)展趨勢[J].測繪科學, 2001,26(3):4-9
[2] 東凱,方裕.空間數(shù)據(jù)庫模型概念與結(jié)構(gòu)研究[J].地理信息世界, 2004,2(2): 8-16
[3] 李德仁,彭明軍,邵振峰.基于空間數(shù)據(jù)庫的城市網(wǎng)格化管理與服務系統(tǒng)的設(shè)計與實現(xiàn)[J].武漢大學學報(信息科學版),2006,31(6):471-475
[4] 龔建雅,朱欣焰.面向?qū)ο蠹煽臻g數(shù)據(jù)庫管理系統(tǒng)的設(shè)計與實現(xiàn)[J].武漢測繪科技大學學報,2000,25(4):289-293
[5] 譚德寶,程學軍.基于ArcSDE+ Oracle 9i 的防洪減災綜合數(shù)據(jù)庫的構(gòu)建及應用[J]. 武漢大學學報(信息科學版), 2006, 31(1): 90-93
[6] 張旭晴,于小平,楊國東,等.基于 ArcSDE的空間基礎(chǔ)數(shù)據(jù)庫設(shè)計與實現(xiàn)[J].測繪與空間地理信息,2008,30(6):79-81
[7] 熊麗華,楊峰.基于ArcSDE的空間數(shù)據(jù)庫技術(shù)的應用研究[J].計算機應用,2004, 24(3):90-91
[8] 楊金玲,曹先革,劉璐璐.基于ArcSDE的數(shù)字城市規(guī)劃空間數(shù)據(jù)庫設(shè)計與實現(xiàn)[J].測繪與空間地理信息,2010,33(4):16-18
[9] 鄧中亮,馬英俊.基于Oracle 數(shù)據(jù)庫與ArcSDE的空間數(shù)據(jù)存取優(yōu)化[J].軟件,2011, 32(2):78-80
[10] 馬妮,李維功.ArcSDE for Oracle優(yōu)化實踐[J].測繪通報,2007(10):50-53
[11] WEST R.Understanding ArcSDE: GIS by ESRI[M].Esri Press,2001
[12] 蓋國強,馮春培,葉梁,等.Oracle 數(shù)據(jù)庫性能優(yōu)化[M].北京:人民郵電出版社, 2005
本 刊 聲 明
為適應我國信息化建設(shè),擴大本刊及作者知識信息交流渠道,本刊數(shù)據(jù)已被《中國核心期刊(遴選)數(shù)據(jù)庫》《CNKI 中國期刊全文數(shù)據(jù)庫》和《中文科技期刊數(shù)據(jù)庫(全文版)》等收錄。在《地理空間信息》發(fā)表的論文均默認將其在著作權(quán)保護期內(nèi)的復制權(quán)、發(fā)行權(quán)、匯編權(quán)、翻譯權(quán)以及網(wǎng)絡(luò)傳播權(quán)授權(quán)給《地理空間信息》編輯部,編輯部可將上述權(quán)利轉(zhuǎn)授給第三方使用。作者不再許可他人以任何形式使用該篇論文,但可以在其后續(xù)作品中引用(或翻譯)該論文中部分內(nèi)容或?qū)⑵鋮R編在作者的非期刊類文集中。如不同意,請事先聲明,本刊另作處理。其文章的著作權(quán)使用費與本刊稿酬一次性給付(已在收取發(fā)表費時折減和換算為雜志贈閱)。
(本刊編輯部)
P208
B
1672-4623(2016)12-0021-03
10.3969/j.issn.1672-4623.2016.12.008
張偉偉,工程師,研究方向為地理空間數(shù)據(jù)管理、空間數(shù)據(jù)挖掘與應用。
2015-01-21。
項目來源:寧波市規(guī)劃局2012年基礎(chǔ)測繪指令性項目。