常曉艷
[摘 要]當(dāng)前我國石油企業(yè)的數(shù)據(jù)庫建設(shè)正朝著勘探開發(fā)生產(chǎn)專業(yè)數(shù)據(jù)集成化、一體化方向發(fā)展,實(shí)現(xiàn)企業(yè)數(shù)據(jù)資產(chǎn)的集中,建立統(tǒng)一的油田數(shù)據(jù)中心已成為一種趨勢。在油田的業(yè)務(wù)上需要不僅要處理各自的數(shù)據(jù),還要交換數(shù)據(jù),如何處理分散的數(shù)據(jù)、實(shí)現(xiàn)彼此間數(shù)據(jù)的同步、實(shí)現(xiàn)數(shù)據(jù)中心數(shù)據(jù)匯總,是油田數(shù)據(jù)庫建設(shè)的難題,Oracle分布式數(shù)據(jù)庫系統(tǒng)技術(shù)的出現(xiàn)為解決這個問題提供了可能。本文介紹了Oracle數(shù)據(jù)庫的系統(tǒng)特點(diǎn)及結(jié)構(gòu)組成,概述了其性能優(yōu)化的內(nèi)容,研究了Oracle數(shù)據(jù)庫的常用技術(shù)在油田數(shù)據(jù)管理方面的應(yīng)用。
[關(guān)鍵詞]Oracle數(shù)據(jù)庫;性能;優(yōu)化;技術(shù);應(yīng)用
中圖分類號:U926 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-914X(2017)46-0373-01
為人們所熟悉的Oracle數(shù)據(jù)庫是應(yīng)用十分廣泛的數(shù)據(jù)庫,其在確定數(shù)據(jù)的分布時,為了提高估計(jì)的精確度,引入直方圖來描述數(shù)據(jù)值的分布。在最新版本中,它將基于規(guī)則的優(yōu)化方法完全剔除,查詢優(yōu)化器在處理查詢時只使用基于代價的優(yōu)化方法,并在性能優(yōu)化調(diào)整方面提供了自動數(shù)據(jù)庫診斷監(jiān)控器ADDM、應(yīng)用端到端追蹤、自動化統(tǒng)計(jì)信息收集及自動共享內(nèi)存管理等新特性。隨著計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)據(jù)庫的應(yīng)用越來越廣泛,其在油田數(shù)據(jù)管理的應(yīng)用也越來越受到重視。
對于Oracle數(shù)據(jù)庫來說,操作系統(tǒng)的性能、服務(wù)器硬件的性能、數(shù)據(jù)庫的設(shè)計(jì)、表空間的規(guī)劃、共享池的設(shè)置、回滾段的管理、聚簇的使用、并行控制等方面都會影響其運(yùn)行的整體性能,Oracle數(shù)據(jù)庫服務(wù)器是高度可優(yōu)化的軟件產(chǎn)品,對Oracle數(shù)據(jù)庫進(jìn)行性能調(diào)整與優(yōu)化具有非常重要的意義。
1.Oracle數(shù)據(jù)庫系統(tǒng)特點(diǎn)、產(chǎn)品結(jié)構(gòu)及組成
1.1 Oracle數(shù)據(jù)庫系統(tǒng)特點(diǎn)
(l)支持大數(shù)據(jù)庫、多用戶的高性能事務(wù)處理。Oracle支持最大的數(shù)據(jù)庫(幾百TB),可以充分的利用硬件設(shè)備。支持大量用戶同時在同一數(shù)據(jù)上執(zhí)行各種應(yīng)用,并使數(shù)據(jù)爭用最小,能夠保證數(shù)據(jù)的一致性。(2)遵守?cái)?shù)據(jù)存取語言、操作系統(tǒng)、用戶接口和網(wǎng)絡(luò)通信協(xié)議的工業(yè)標(biāo)準(zhǔn)。(3)硬件環(huán)境獨(dú)立。Oracle具有良好的硬件環(huán)境獨(dú)立性,支持各種類型的大型,中型,小型和微機(jī)系統(tǒng)。(4)更好的安全性和完整控制。Oracle有用戶鑒別、特權(quán)(可到列級別)、角色、觸發(fā)器、日志、后備等功能,有效地保證了數(shù)據(jù)存取的安全性和完整性以及并發(fā)控制和數(shù)據(jù)的回復(fù)。(5)支持分布式數(shù)據(jù)庫和分布處理。Oracle允許將處理分為數(shù)據(jù)庫服務(wù)器和客戶應(yīng)用程序處理,所有共享的數(shù)據(jù)管理由具有數(shù)據(jù)庫管理系統(tǒng)的計(jì)算機(jī)處理,而運(yùn)行數(shù)據(jù)應(yīng)用的工作站則側(cè)重解釋和顯示數(shù)據(jù)。通過網(wǎng)絡(luò)鏈接的計(jì)算環(huán)境,Oracle能將存放在多臺計(jì)算機(jī)上的數(shù)據(jù)組合成一個邏輯數(shù)據(jù)庫,可以允許所有的網(wǎng)絡(luò)用戶存取。分布式系統(tǒng)像集中式數(shù)據(jù)庫一樣具有用戶透明性和數(shù)據(jù)一致性。分布式的功能決定了Oracle能夠很好的應(yīng)用到油田中。
1.2 Oracle產(chǎn)品結(jié)構(gòu)及組成
(1)產(chǎn)品結(jié)構(gòu)。Oracle系統(tǒng)是由以RDBMS為核心的一批軟件結(jié)構(gòu)產(chǎn)品,Oracle數(shù)據(jù)庫系統(tǒng)是具有管理數(shù)據(jù)功能的系統(tǒng)。每個運(yùn)行的Oracle數(shù)據(jù)庫與一個Oracle實(shí)例(instance)相連。一個Oracle實(shí)例是一個存取和控制數(shù)據(jù)庫的軟件機(jī)制。每次在數(shù)據(jù)庫服務(wù)器上啟動一個數(shù)據(jù)庫時,便分配一個稱為系統(tǒng)全局區(qū)的內(nèi)存區(qū)(SGA),并且啟動一個或多個Oracle進(jìn)程。
(2)工作原理。Oracle數(shù)據(jù)庫是一個數(shù)據(jù)集合,是典型的關(guān)系數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫不僅指物理上的數(shù)據(jù),同時包括物理文件、內(nèi)存區(qū)和進(jìn)程的集合。數(shù)據(jù)庫中的文件是存儲在物理文件中的,數(shù)據(jù)在被使用時,先調(diào)入內(nèi)存,Oracle利用SGA的主內(nèi)存來管理用戶間的數(shù)據(jù)共享;數(shù)據(jù)是通過一組后臺進(jìn)程在SGA與數(shù)據(jù)文件之間進(jìn)行數(shù)據(jù)讀寫。
2.Oracle數(shù)據(jù)庫技術(shù)在油田的優(yōu)化設(shè)計(jì)及應(yīng)用
2.1 油田開發(fā)數(shù)據(jù)庫的優(yōu)化設(shè)計(jì)
(1)索引的優(yōu)化設(shè)計(jì)。Oracle數(shù)據(jù)庫會選擇完全不同的優(yōu)化方式,這種索引的建立和使用在油田勘探及開發(fā)數(shù)據(jù)庫中用處很大,由于開發(fā)數(shù)據(jù)庫的信息量很大,油水井的日報(bào)和月報(bào)是生產(chǎn)分析與管理的重要實(shí)時監(jiān)控工具,索引的優(yōu)化設(shè)計(jì)無論在數(shù)據(jù)信息的查詢方面還是在生產(chǎn)的動態(tài)分析上都具有重要的作用。
充分索引才能加快數(shù)據(jù)庫訪問速度。如果設(shè)定了一個很好的索引,但是Oracle卻不使用,則需要審視一下SQL語句。
(2)SQL語句的優(yōu)化選擇實(shí)現(xiàn)數(shù)據(jù)庫的快速查詢。在使用數(shù)據(jù)庫查詢數(shù)據(jù)的過程中,最常用的語句就是SQL語句,特別是在一些復(fù)雜的查詢中,怎樣才能夠提高多表查詢的效率已成為應(yīng)用開發(fā)數(shù)據(jù)庫人員所關(guān)心的問題,合理選擇和優(yōu)化SQL查詢語句可以提高數(shù)據(jù)庫的查詢速度。1)外部聯(lián)接“+”的用法可明顯提高運(yùn)行速度。外部聯(lián)接“+”按其在“=”的左邊或右邊分為左聯(lián)接和右聯(lián)接。利用外部聯(lián)接“+”,可以替代效率十分低下的Notin運(yùn)算,大大提高運(yùn)行速度。2)用Notexists代替Notin。完成這類查詢的一種更快更直接的方法就是使用Notexists字句,Notexists的典型用途就是一個表中的哪些信息在另一個表中沒有匹配。Notexists常常能夠發(fā)揮已建好索引的作用,而Notin不能使用這些索引,這類查詢能否使用索引對查詢的效率將產(chǎn)生極大影響。
2.2 數(shù)據(jù)庫的后臺處理技術(shù)的應(yīng)用
(1)合理創(chuàng)建臨時表或視圖。根據(jù)需要在數(shù)據(jù)庫基礎(chǔ)上穿件新表或視圖,對于多表關(guān)聯(lián)后再查詢信息的可建新表,對于單表查詢的可創(chuàng)建視圖,這樣可充分利用數(shù)據(jù)庫的容量大、可擴(kuò)充性強(qiáng)等特點(diǎn),所有條件的判斷、數(shù)值計(jì)算統(tǒng)計(jì)均可在數(shù)據(jù)庫服務(wù)器后臺統(tǒng)一處理后追加到臨時表中,形成數(shù)據(jù)結(jié)果的過程可用數(shù)據(jù)庫的過程或函數(shù)來實(shí)現(xiàn)。
(2)數(shù)據(jù)庫打包技術(shù)的充分利用。利用SQL*Plus的編輯功能或其它文本編輯的方式,使用數(shù)據(jù)庫描述語言來編寫數(shù)據(jù)庫的過程或函數(shù),然后把過程或函數(shù)打成包在數(shù)據(jù)庫后臺統(tǒng)一運(yùn)行包就可以了。
總之,在使用數(shù)據(jù)庫的過程中,不但需要軟件程序員的語言靈活多樣,而且應(yīng)用軟件也要求后臺數(shù)據(jù)庫技術(shù)的合理優(yōu)化,特別是針對對油田信息量大、數(shù)據(jù)類型多、數(shù)據(jù)處理復(fù)雜等特點(diǎn),就更要求數(shù)據(jù)庫在環(huán)境、運(yùn)行速度、可靠性、安全性以及兼容性等各個方面的支持,才能保證及促進(jìn)油田信息化的發(fā)展。
同時,隨著數(shù)據(jù)庫規(guī)模的擴(kuò)大,數(shù)據(jù)庫系統(tǒng)的性能問題越來越突出,因此,如何對數(shù)據(jù)庫進(jìn)行性能調(diào)優(yōu)至關(guān)重要。性能調(diào)整與優(yōu)化是一項(xiàng)活動,它是通過優(yōu)化應(yīng)用程序、修改系統(tǒng)參數(shù)、改變系統(tǒng)配置來改變系統(tǒng)性能。性能調(diào)整與優(yōu)化包括對硬件配置、操作系統(tǒng)與數(shù)據(jù)庫管理系統(tǒng)配置,以及對訪問這些組件的應(yīng)用的詳細(xì)分析和優(yōu)化。通常認(rèn)為評價Oracle數(shù)據(jù)庫系統(tǒng)的性能指標(biāo)主要有系統(tǒng)吞吐量、數(shù)據(jù)庫用戶響應(yīng)時間、數(shù)據(jù)庫命中率、內(nèi)存使用情況以及所需的磁盤I/O量。
無論哪一個數(shù)據(jù)庫管理系統(tǒng)都會出現(xiàn)數(shù)據(jù)庫運(yùn)行效率問題,要使數(shù)據(jù)庫的性能達(dá)到最大化,主要可以從操作系統(tǒng)和硬件性能、數(shù)據(jù)庫結(jié)構(gòu)、Oracle資源配置Oracle實(shí)例性能、SQL語句執(zhí)行等方面進(jìn)行,而這些方面都是互相依賴的。其優(yōu)化主要從調(diào)整數(shù)據(jù)庫、調(diào)整應(yīng)用程序結(jié)構(gòu)設(shè)計(jì)、優(yōu)化應(yīng)用程序、調(diào)整數(shù)據(jù)庫內(nèi)存分配、調(diào)整磁盤I/O等方面進(jìn)行。
3.結(jié)論與認(rèn)識
Oracle數(shù)據(jù)庫技術(shù)應(yīng)用到油田數(shù)據(jù)中心建設(shè),能夠有效的解決數(shù)據(jù)分散和集中管理的矛盾,實(shí)現(xiàn)了數(shù)據(jù)的共享和交換。在石油數(shù)據(jù)庫管理系統(tǒng)中應(yīng)用ORACLE數(shù)據(jù)庫管理系統(tǒng)能夠大大提高數(shù)據(jù)庫管理的效率和安全性,對油田信息化建設(shè)具有重要的意義。
參考文獻(xiàn)
[1] 邢政科;數(shù)據(jù)庫優(yōu)化技術(shù)的分析與探討[J];電腦知識與技術(shù);2011年20期.
[2] 熊華平;數(shù)據(jù)庫技術(shù)在油田勘探開發(fā)中的應(yīng)用[J];計(jì)算機(jī)系統(tǒng)應(yīng)用;2002年07期.endprint