王文閣
(內(nèi)蒙古電力信息通信中心,內(nèi)蒙古呼和浩特 010020)
作為全球重要的數(shù)據(jù)庫供應商,Oracle這一數(shù)據(jù)庫在諸多的領(lǐng)域都取得了應用上的效果。公司核心業(yè)務如營銷、財務、生產(chǎn)系統(tǒng)大多選用了Oracle作為其數(shù)據(jù)庫系統(tǒng)。Oracle數(shù)據(jù)庫服務器是整個系統(tǒng)的核心,它的性能高低直接影響整個系統(tǒng)的性能。優(yōu)化Oracle這一數(shù)據(jù)庫的性能時,可以提高整體的系統(tǒng)性能,避免其發(fā)生系統(tǒng)上的瓶頸,并減少投資的實際成本。本文結(jié)合當前的應用情況來討論Oracle這一數(shù)據(jù)庫性能的優(yōu)化措施[1]。
在進程當中,基于讀寫的速率以及命中數(shù)據(jù)的概率在快速緩沖區(qū)比較高,因此Oracle的用戶將在快速緩沖區(qū)當中存儲一切的數(shù)據(jù)。一旦用戶想要獲取其他緩沖區(qū)當中的數(shù)據(jù),需要得到所需的數(shù)據(jù)時,就要進入慢速的磁盤。要達到系統(tǒng)做出響應的效率以及命中數(shù)據(jù)的概率提升的目的,就要進一步地對快速的命中緩沖區(qū)域當中的概率進行提升,從而提高優(yōu)化的意義[2]。
吞吐量指的是數(shù)據(jù)庫進行性能的調(diào)整與完成該項任務所花費的時間的比例。為了提高Oracle這一數(shù)據(jù)庫的系統(tǒng)性能,需要提高系統(tǒng)當中的吞吐量。通過優(yōu)化以及調(diào)整這一系統(tǒng)性能,從而顯著地改善使用系統(tǒng)的效率。
響應時間指的是用戶將SQL相應的語句從發(fā)送到得到最終的結(jié)果所花費的時間。用戶經(jīng)常需要花費大量的時間來等待使用過程中Oracle這一數(shù)據(jù)庫做出相應的響應。所以,在連接到這一數(shù)據(jù)庫之后,對做出響應的時間進行降低也是優(yōu)化該數(shù)據(jù)庫系統(tǒng)的重要目的,因為它效率相對較低,并且對用戶的體驗過程產(chǎn)生重大的影響[2]。
系統(tǒng)的主要性能在某種程度上受制于正在運行的服務器,而操作系統(tǒng)的性能則受制于服務器的性能。服務器的性能問題可能會對操作系統(tǒng)性能產(chǎn)生重大的影響,并可能大大降低系統(tǒng)的性能[3]。
CPU是服務器操作的硬件組件。由于數(shù)據(jù)庫進程占用了CPU資源,基于此其他事務將暫停操作并延遲系統(tǒng)的響應速度。相反,當服務器為進行使用時,CPU中占用資源的比例大于75%。所以,當前服務器在內(nèi)存參數(shù)上存在一些問題。
在高速的緩存區(qū)域里,一旦對讀寫操作進行數(shù)據(jù)讀取,那么磁盤的慢速操作只能一個進程進行運行。基于此,一旦很多的進程在同一時間里訪問磁盤中的部分數(shù)據(jù),則數(shù)據(jù)把原因歸于操作系統(tǒng)具有互斥的操作,防止讀取以及寫入的沖突[4]。
主要的外部因素是網(wǎng)絡的速度,它會影響數(shù)據(jù)庫的性能。較低的網(wǎng)絡速度會增加服務器的負載,降低數(shù)據(jù)傳輸速度以及系統(tǒng)吞吐量,并顯著地增加系統(tǒng)請求延遲以及響應時間,進而對Oracle系統(tǒng)的性能產(chǎn)生影響。
如果在系統(tǒng)應用程序中以遞歸方式執(zhí)行許多的SQL事務,則數(shù)據(jù)庫表的結(jié)構(gòu)以及約束的設(shè)置將會不準確,SQL事務的執(zhí)行、讀取以及寫入的效率將會明顯低下,并且系統(tǒng)的程序的應用存在問題。這將嚴重地制約系統(tǒng)的處理以及傳輸數(shù)據(jù)的性能[5]。
對SQL語句進行改善,一方面可以提升系統(tǒng)中的吞吐率,降低訪問I/O的次數(shù),另一方面也可以使用網(wǎng)絡傳輸中的帶寬。對數(shù)據(jù)庫的SQL語句進行改善,使數(shù)據(jù)庫當中的系統(tǒng)安全性及穩(wěn)定性大大地提升,改善運行服務器的效率。如果要完成相應的功能,則系統(tǒng)需要對SQL的事務進行執(zhí)行。大體上涵蓋增添、修改以及檢測等系統(tǒng)的操作。基于此,Oracle這一數(shù)據(jù)庫的整體性能受制于SQL的執(zhí)行效率。為了對Oracle這一系統(tǒng)的性能進行調(diào)整,則應該優(yōu)化SQL語句的編寫過程。基于數(shù)據(jù)庫的整體性能的主要影響因素,使用針對性的解決策略來優(yōu)化這一系統(tǒng)。系統(tǒng)的優(yōu)化需要考慮重要的技術(shù)。SQL語句的優(yōu)化可最大化地改善數(shù)據(jù)庫的整體性能[6]。
在整個的信息系統(tǒng)的角度來看,優(yōu)化Oracle這一數(shù)據(jù)庫性能主要體現(xiàn)在Oracle這一數(shù)據(jù)庫的服務器的性能提升。此調(diào)整的流程包括:其一,基于改善用戶使用體驗。該操作系統(tǒng)是實現(xiàn)人機交互功能的第一步,并且是實現(xiàn)Oracle服務器的性能優(yōu)化的基礎(chǔ)。在對Oracle這一數(shù)據(jù)庫中服務系統(tǒng)進行操作系統(tǒng)調(diào)整,可以高效地提升服務器的使用性能。其二,這一服務器是很多資源共同組成的,而這眾多的資源在服務器中匯聚所用的數(shù)據(jù)信息,使信息數(shù)據(jù)的功能最大化,從而提高對用戶對信息資源需求的供給。其三,在此數(shù)據(jù)庫中的服務器里,對邏輯的級別進行設(shè)置,并確保優(yōu)先級的合理性。在這個級別上,需要拆分工作上任務的優(yōu)先級以及主要、次要的關(guān)系,提供種類各異的性能服務來滿足用戶的各項需求,并首先執(zhí)行比較重要的任務,從而改善Oracle這一數(shù)據(jù)庫的服務器。
在這一步要格外關(guān)注,Oracle這一數(shù)據(jù)庫服務器的體系結(jié)構(gòu)中內(nèi)存硬件是日志的高速緩存、緩沖區(qū)的高速緩存以及數(shù)據(jù)庫的高速緩存。這三方面的存儲器的配置改善會對Oracle這一數(shù)據(jù)庫的服務器性能產(chǎn)生很大的影響。調(diào)整Oracle這一數(shù)據(jù)庫緩沖區(qū)的內(nèi)存大體體現(xiàn)在共享以及私有的SQL結(jié)構(gòu)調(diào)整中,了解此結(jié)構(gòu)中內(nèi)存信息的容量以及運行的速度,并以數(shù)字反饋的形式將其數(shù)據(jù)庫的動態(tài)性能顯示在模塊當中。允許外部的人員使用系統(tǒng)來檢索該區(qū)域內(nèi)存的信息,并根據(jù)該活動進行適當?shù)卣{(diào)整。要調(diào)整字典的緩沖區(qū)內(nèi)存中的配置,必須了解數(shù)據(jù)庫字典緩沖區(qū)的內(nèi)存狀態(tài)。該存儲器結(jié)構(gòu)主要被存儲數(shù)據(jù)庫內(nèi)存的信息以及部分用戶的信息。內(nèi)存的這一部分對數(shù)據(jù)庫服務器的整體性能有重大影響。數(shù)據(jù)日志緩沖區(qū)中的信息活動也顯示在動態(tài)性能顯示模塊中。可以動態(tài)地查詢內(nèi)存相關(guān)數(shù)據(jù)當中的活動值,以確定內(nèi)存的配置調(diào)整的合理化[7]。
在優(yōu)化Oracle這一數(shù)據(jù)庫的服務器性能過程里,優(yōu)化CPU可以更好地保護CPU的基本性能。一些無用的程序在運行時會占用CPU的執(zhí)行內(nèi)存,從而在執(zhí)行重要文件時降低其性能,并影響CPU的執(zhí)行能力。這主要體現(xiàn)在時間以及操作環(huán)境的影響,高溫、長時間以及過度使用程序,這些因素都會制約CPU這一資源的使用,基于此應該設(shè)置Oracle這一數(shù)據(jù)庫中服務器的內(nèi)部參數(shù)來對CPU的利用效率進行調(diào)整。
優(yōu)化Oracle這一數(shù)據(jù)庫的服務器性能,也要正確地認識到I/O優(yōu)化的價值所在,并且主要通過以下幾個部分來進行I/O的改善,從而更加全面地掌握數(shù)據(jù)庫的基本性能,主要做到這幾點:首先,對單一的內(nèi)存中信息存儲的空間進行設(shè)置,從而使用這一空間來進行訪問的用戶信息存儲,以提高響應的基本速度,創(chuàng)建用戶所需的表文件,并將它們分成不同的空間系統(tǒng)。其次,對不同種類的信息以及數(shù)據(jù)進行分類劃分,同時基于不同內(nèi)存的主要性能來排列各個數(shù)據(jù),實現(xiàn)數(shù)據(jù)的自動分類以及過濾,并在防止緩存數(shù)據(jù)的文件方面發(fā)揮著卓越的作用。最后,對信息的存儲空間進行擴展,隔斷各磁盤和內(nèi)存相互間的關(guān)聯(lián),把同樣屬性的數(shù)據(jù)存儲在相同的服務器當中。數(shù)據(jù)庫的負責人需要把構(gòu)成相同表格的空間數(shù)據(jù)存儲在各個硬盤當中,以實現(xiàn)合理地分配各個硬盤I/O的負載[8]。
對系統(tǒng)的存儲區(qū)域進行優(yōu)化,以共享用戶以及服務器這兩者的數(shù)據(jù)。這主要有:對訪問日志的空間、快速進行緩沖的區(qū)域以及共享池進行優(yōu)化,擴大高速進行緩存的空間,從而提高數(shù)據(jù)檢索的數(shù)量,實現(xiàn)減低磁盤I/O所需的操作,降低緩存所用的空間,從而影響到系統(tǒng)的具體性能。
3.5.1 對共享池進行設(shè)置上的優(yōu)化
對共享池進行設(shè)置上的優(yōu)化主要是通過減少用戶的交互時間。也就是說,將已經(jīng)執(zhí)行過的SQL命令進行重復地使用,通過重新放置在數(shù)據(jù)共享池來實現(xiàn),而無需進行相關(guān)的分析以及時間來存儲。這一優(yōu)化是為了。確保數(shù)據(jù)的應用程序可以利用在緩存區(qū)域當中存儲的數(shù)據(jù)。基于此,具有較高速度的緩沖器提高了數(shù)據(jù)采集當中的命中概率。
3.5.2 對快速緩沖區(qū)中的信息進行合理優(yōu)化
對快速緩沖區(qū)中的信息進行合理優(yōu)化,對于縮短用戶進行操作所需的時間。一旦用戶查詢相關(guān)的數(shù)據(jù),則可以在快速緩沖區(qū)域及時地獲取相應數(shù)據(jù)。在快速緩沖區(qū)中檢索數(shù)據(jù)可縮減用戶在操作當中的等待時間,基于此,這一數(shù)據(jù)庫的系統(tǒng)將數(shù)據(jù)發(fā)送個人給用戶主要是基于快速緩存區(qū)域。然而,如果在快速進行緩沖的區(qū)域中不能對數(shù)據(jù)進行檢索操作,則數(shù)據(jù)庫將從文件的服務器中讀取數(shù)據(jù)的副本,將數(shù)據(jù)復制并將其存儲在快速緩沖區(qū)域當中。此方法對于后續(xù)的用戶進行信息讀取十分高效。基于此,在用戶檢索相應的信息過程中,要必要保證充足的存儲空間,特別是高速進行緩存的區(qū)域,并且在確保高數(shù)據(jù)的緩沖區(qū)域大數(shù)據(jù)具有足夠的命中概率之后,進行數(shù)據(jù)系統(tǒng)功能的優(yōu)化操作[9]。
3.5.3 對緩沖日志的區(qū)域進行調(diào)整
對日志的緩沖區(qū)域進行優(yōu)化設(shè)置,主要是為了修改相應的數(shù)據(jù)。為了能夠把日志載入緩存區(qū)域的系統(tǒng)當中,有必要提前在高速進行緩存的區(qū)域進行日記寫入工作,之后基于用戶的個人需求進行文件的處理工作。一旦不能提供足夠的緩存空間,存儲的空間受限,將不能進行相應的日志操作,基于此一旦過于頻繁地對磁盤中I/O進行操作,將會制約數(shù)據(jù)庫的數(shù)據(jù)處理能力。
由于數(shù)據(jù)庫對象不是固定的,基于此Oracle這一數(shù)據(jù)庫系統(tǒng)需要連續(xù)的數(shù)據(jù)操作,并且在此過程中不可避免地會產(chǎn)生大量的磁盤碎片。碎片整理也是優(yōu)化以及調(diào)整Oracle這一數(shù)據(jù)庫系統(tǒng)性能的必然方法。對于由段刪除、擴展以及創(chuàng)建導致表空間級的碎片,請重新組織表的空間,接下來根據(jù)EXPORI程序的指導功能導出相應的數(shù)據(jù),最后將表中的數(shù)據(jù)導出,然后刪除相印的數(shù)據(jù),從而消除這些碎片。
為了提高Oracle這一數(shù)據(jù)庫系統(tǒng)的穩(wěn)定性以及效率,本文針對制約其性能運行的主要因素,提出了相應的優(yōu)化策略。優(yōu)化不僅需要及時地掌握系統(tǒng)的總體結(jié)構(gòu),還要熟悉運行系統(tǒng)的環(huán)境。同時,優(yōu)化需要定期的跟蹤、測評、調(diào)整、檢驗,以實現(xiàn)Oracle這一數(shù)據(jù)庫系統(tǒng)的穩(wěn)定以及高效運轉(zhuǎn)。