張偉偉,高 峰,樂 恒
(1.寧波市規劃與地理信息中心,浙江 寧波 315042)
地理空間數據庫性能優化原則研究
張偉偉1,高 峰1,樂 恒1
(1.寧波市規劃與地理信息中心,浙江 寧波 315042)

以提高企業級地理空間數據庫效率為出發點,總結了Oracle數據庫與ArcSDE軟件性能優化的原則,結合實際給出了數據庫性能優化的一些建議,并將上述原則應用于海量地理空間數據庫的優化,有效提升了數據庫性能。
地理空間數據庫;Oracle性能優化;ArcSDE性能優化
地理信息系統是當前智慧城市建設的核心技術,其應用已延伸到城市建設與管理的各個角落,范圍覆蓋了規劃、國土、交通、電力、水利等領域。隨著智慧城市建設的逐步推進,積累的空間數據種類日益豐富,數據規模也直線上升,如何高效管理和使用海量空間數據,實現空間數據庫的高性能部署與安全運維管理是項目設計與運維人員關注的熱點。由于空間數據的復雜性與非結構化特征,使得地理空間數據庫的存儲與管理也相對復雜。圍繞著空間數據庫技術的研究主要從空間數據庫的理論、設計、應用及性能優化4個方面開展。文獻[1,2]從空間數據庫的理論角度描述了空間數據庫的基本特征、結構及內容;文獻[1,3,4]從空間數據庫設計方面論述了空間數據庫管理系統的技術革新歷程及空間數據庫的常用模型;文獻[3,5-8]描述了使用空間數據庫技術解決特定領域問題的典型案例;文獻[9,10]從空間數據庫的存儲、運維角度總結了數據庫性能提升的方法。
地理空間數據的管理經歷了由傳統的文件系統方式到對象關系數據庫方式的過程,在數據管理能力上,從小數據量管理向海量數據管理發展[3]。在當前大數據背景下,針對空間圖形數據與屬性數據統一存儲與管理的應用需求,常用的兩種解決方案是:①空間數據庫擴展技術,如Oracle數據庫的Oracle Spatial和Informix數據庫的Spatial DataBlade技術;②中間件技術,如ESRI公司的ArcSDE和MapInfo公司的SpatialWare等產品。數據庫+中間件(空間數據引擎)的空間數據存儲與管理解決方案占據主流,其中以Oracle數據庫+ArcSDE中間件模式最為常用,本文也以此為例,總結了地理空間數據庫性能優化的主要技術原則。
商業數據庫與GIS中間件技術相結合改變了傳統GIS的應用模式,為空間數據一體化管理提供了高效、穩定的解決方案,較好地解決了多用戶在線編輯、數據完整性和數據安全等核心問題。在Oracle+ArcSDE的存儲模式下,Oracle數據庫是數據存儲的容器,ArcSDE中間件則是空間數據的存取通道。圖1是Oracle數據庫+ArcSDE中間件的體系結構[11]。

圖1 ArcSDE軟件體系結構
Oracle數據庫系統由實例和數據庫兩大部分組成[12],如圖2所示。數據庫實例優化的出發點是減少磁盤讀寫次數,數據庫文件優化的出發點是平衡磁盤讀寫壓力。

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