喬淑鳳 遼寧錦州渤海大學信息科學與技術學院
分析oracle數據庫性能優化的研究
喬淑鳳 遼寧錦州渤海大學信息科學與技術學院
Oracle被廣泛的應用到眾多領域中,隨著數據庫用戶量指數倍數和用戶訪問量劇增,數據庫業務處理性能呈直線下降的趨勢。本文研究關于如何優化數據庫性能分析問題以及如何確定系統的性能優化方案,通過分析影響因素提升數據優化方案,確定本文使用數據優化方案的目標,期望通過本文優化技術使得其性能達到最優化,研究表明:性能優化和系統運行效率都會達到最優狀態。
Oracle 數據庫 表分區技術 性能優化 優化方案
Oracle的用戶應用越來越多,怎樣實現對Oracle性能優化、提升運行效率、盡量減少數據存儲空間和系統吞吐量的改進,當實現軟件開發時,重點需要考慮是系統優化部分。當前,Oracle是被廣泛應用到各種領域中的數據庫,例如:行政機關、警務系統、企業業務管理、銀行業務、國際金融業等多個管理部門,并將Oracle系統逐漸應用到企業的管理平臺,目前,隨著Oracle數據庫被廣泛應用每個領域,用戶使用量逐年增多,對于選擇大型數據庫作為應用軟件設計基礎架構,它是軟件運行的骨架,但是,在項目開發中,越多用戶量使用系統,其用戶訪問量指數上升,系統中需要同時處理用戶請求不斷增多,數據庫數據處理性能直線下降,根據本文需要改進和優化系統性能,在滿足系統需求分析的前提下,我們通過對其整體性能的優化操作,使系統的運行與數據處理狀態達到最優地步。
2.1 如何提高數據命中率
Oracle的用戶進程把全部數據存儲在高速緩沖區,因為,高速緩沖區的讀寫速度快、數據命中率高。用戶獲取數據如果不在高速緩沖區獲取,就到低速磁盤中獲取,為了提高數據命中率并縮短了系統的響應時間,有效的提高在高速緩沖區命中率,這是衡量數據庫性能的另一種重要方法。
2.2 如何縮短系統的響應時間
系統的響應時間是指用戶發出請求到系統返回結果的時間戳,為了提升數據庫系統的整體性能,縮短系統的響應時間來實現縮短用戶體驗的目的,既可實現縮短用戶請求等待時間,與此同時優化系統性能和提高CPU資源使用率。
2.3 如何優化系統I/O性能
Oracle將數據存儲到系統的磁盤數據塊中,如果數據庫開始讀寫操作之后,必須與磁盤I/O讀寫操作相關,程序員合理規劃磁盤I/ O操作,基于高速緩存技術提高磁盤I/O吞吐量,用戶請求與響應時間變短,有效利用數據庫物理內存空間,有效的避免頻繁地使用磁盤I/O讀寫功能。
2.4 如何實現合理使用內存
數據庫性能優化與內存優化有關,大型數據庫系統對并發訪問量要求較高,如果Oracle內存空間使用不合理便會影響系統數據處理效率,延遲用戶等待時間,如果內存空間足夠大,得到最大數據處理效率和內存空間利用率,內存空間的使用評價參數作為系統性能判斷,通過合理使用數據庫的內存空間,數據庫的使用性能才有所提高。
2.5 如何減小磁盤排序
當用戶發出事務請求時,此請求事務中有數據排序函數或者嵌套函數時,有可能執行事務排序在數據庫內存中進行,或許已經在低速磁盤上數據排序完畢。但是,由于讀寫操作在低速磁盤上實現往往降低系統的運行效率,再加上低速磁盤物理結構影響,其實現讀寫操作的效率比內存要慢的多,因此,數據庫的性能優化要減少磁盤排序操作。
目前,存在多種因素影響數據性能,如下幾點:
①操作系統的性能。系統性能在某種程度上依賴于運行的服務器,操作系統性能取決于服務器的性能。
②內存參數設置。CPU是服務器運行的硬件組成部分,CPU資源被數據庫的進程占用過高,會導致其他事務暫停運行,致使系統的響應等待時間延遲,反而當服務器空閑時,CPU資源占用率超過80%以上的比例,因此,表明服務器的內存參數有問題。
③數據讀寫的I/O操作沖突。如果數據讀寫操作都在高速緩存上讀取,由于低速磁盤操作僅允許一個進程,當多個進程同時訪問磁盤數據時,操作系統的互斥操作防止數據讀寫沖突。
④Oracle配置。如果正確配置Oracle參數會優化數據庫整體性能。
⑤應用程序管理,應用程序在某種程度上影響著服務器的整體性能,尤其是SQL語句執行。
⑥網絡傳輸速度因素。網速影響數據庫性能是外界因素,如果網速慢則導致服務器的負荷量增加,導致數據的傳輸速率和系統的吞吐量有所下降,系統請求等待與響應時間延長。
⑦SQL邏輯錯誤。當應用系統出現很多遞歸執行的SQL事務,數據庫表結構設置和約束條件設置不對,SQL事務執行和讀寫效率變低。
4.1 優化應用系統
數據庫往往是應用軟件上,由于應用系統存在缺陷導致數據庫出現死鎖以及運行效率降低等。對應用系統設計不夠完善,例如,大型應用系統開發與測試方案,應用系統運行一段時間系統性能下降,表明應用系統存在問題。系統設計必須要結合多任務、高并發量的設計過程,并充分分析應用系統的設計。一個應用系統的整體性能取決于Oracle數據庫的整體性能。
4.2 優化數據庫的SQL語句
優化的SQL語句不僅提高系統的吞吐率和降低I/O訪問次數,而且能占用網絡傳輸帶寬。優化后的執行SQL語句使得數據庫系統變得高可靠性,從根本上提高服務器運行效率。系統通過執行SQL事務完成系統的功能操作,有簡單的增刪改查操作,還有其他復雜操作。因此,Oracle數據庫的整體性能取決于SQL執行效率,另外,編寫SQL語句要注意:
①使數據表分區,以分區查詢避免全表掃描,占用數據庫的內存空間。
②實現多個數據表級聯查詢,建立表結構索引以減少SQL事務執行。
③實現多個數據表集中存儲數據塊。
優化Oracle系統性能需要通過改進編寫SQL語句的過程,根據影響數據庫整體性能的主要因素,要采取不同方案加以優化,要考慮到重要技術實現對系統加以優化操作,SQL語句優化使得數據庫整體性能處于最優狀態。
4.3 優化內存區設置
優化系統內存設置區完成被服務器和用戶之間的數據共享操作,其中包括:優化共享池、優化高速緩沖區和優化日志訪問區。優化共享池是只存放SQL事務的存儲空間;優化高速緩沖區的緩存空間越大,則表示可獲取的數據就越多,完成的磁盤I/O操作次數減少;優化日志訪問區,如果數據庫的緩存區設置太小,會導致緩存空間不足,降低系統的性能。
第一,優化共享池設置。優化共享池主要縮短用戶操作時間來實現共享池優化操作,就是指對于已經執行SQL命令置于數據共享池中實現重復利用,并不需要再消耗解析與存儲時間,系統對共享池進行優化后需要盡量保證存放在高速緩存區內的數據,數據的應用程序被訪問到。因此,基于高速緩沖區實現獲取數據的命中率方法。
第二,優化高速緩沖區的數據。高速緩沖區的優化可以縮短用戶操作的時間,當用戶在進行數據查詢可以在高速緩沖區中獲取,如果用戶查詢數據在高速緩沖區中獲取,用戶請求等待時間就會縮短,因此,數據庫系統將會通過高速緩沖區將數據返回給用戶進行顯示,相反,如果不在高速緩沖區中獲取數據,那么,數據庫會從文件服務器中將數據讀取一份,再復制一份放在高速緩沖區里,這種方式便于后面的用戶讀取數據操作。因此,當用戶進行數據檢索時,要保證高速緩存區的存儲空間足夠大,只有保證高數據緩沖區有較大的數據命中率才能優化系統的性能。
第三,優化日志緩沖區。優化日志緩沖區主要實現在于對數據的修改操作。為了系統的操作日志寫進該緩存區文件中,首先,要將操作日志寫入高速緩沖區,然后基于用戶的請求進程操作緩沖區文件,若日志緩沖區沒的空間不足,系統的操作日志不可存儲在其中,導致磁盤I/O操作頻繁,嚴重影響了數據庫的處理性能。
4.4 優化設置數據庫的回滾段
在Oracle中,數據庫的回滾段設置的目的是為了保存原始數據的內容,基于原始內容可以撤銷用戶未保存的數據,Oracle數據庫的真正作用也是為了從系統SQL執行操作的失敗過程中將原始數據恢復上一個節點,數據庫設置回滾方便數據處理中的重要操作。在優化數據庫回滾段設置時,也需要根據優點建立不同的數據庫回滾段,并且將不同的數據庫回滾段置于表的分區中。
4.5 優化磁盤I/O操作
優化磁盤I/O操作是數據庫性能優化關鍵環節,磁盤I/O操作優劣取決于很多因素影響。其中有優化磁盤I/O操作次數太多,分配數據庫存儲空間不當,因此,減少I/O操作的次數頻率需要將大部分數據存儲在高速緩沖區內,當管理員降低Oracle服務器查詢等待時間,需要將數據表實現分區和索引。
第一,優化數據表的索引Index結構。數據庫中表結構重要就是索引設置,優化表的索引結構性能是優化整體性能的基礎,原因是大多數的查詢都是基于索引實現的,如果能夠有效利用表的索引結構,從而提高系統訪問的效率,提高了用戶查詢效率。利用表的索引減少數據庫中的I/O讀寫次數,在建立表的索引結構時,并不是索引越多越好,雖然,有索引的數據庫比沒有索引的檢索效率,但有的時候需要修改表的索引,修改索引操作影響了數據庫的性能。
第二,合理劃分表分區技術。表分區可以實現將不同數據存儲到文件磁盤中,實現對數據庫實現物理區分,合理劃分表分區技術時,系統需要把用戶查詢分布不同的表分區中進行,實現數據分區查詢可以大大減小檢索時間,在進行分區的同時,可將數據分散到不同的磁盤中,磁盤I/O操作增加會嚴重影響數據庫的性能。
4.6 CPU性能調整
本文通過對CPU性能優化利用各種資源,提高數據庫的CPU性能。
第一,使用多個CPU共同完成用戶的事務執行操作,如果資源允許的情況下,需要將數據庫的服務器和CPU資源實現分離。
第二,實現數據檢索時,可以實現批量檢索方式,同時進行數據檢索功能。
4.7 優化oracle表空間
優化數據表空間是重要的概念,高效合理的優化表空間可以實現提高系統的性能。合理優化表空間應適當數據分離和建立表的索引結構。減少磁盤I/O操作應分離操作日志;在數據庫開銷上應分離表的存儲空間、數據存儲空間。
在需求階段分析階段,Oracle性能優化是應用系統設計的基礎,而在系統運行過程中不斷地進行優化系統的管理性能,建設性能狀態良好的系統。
[1]蓋國強.循序漸進Oracle數據庫管理、優化與備份恢復[M].北京:人民郵電出版社,2007
[2]趙夢勤,李秀蘭.ORACLE數據庫應用系統的優化策略[J].計算機工程與應用.2003(27):217-218
[3]潘敏.Oracle數據庫性能優化的分析[J].電腦編程技巧與維護,2010(20):21-22
[4]韓云波.Oracle性能調整技術研究[J].電腦知識與技術,2010(7):65-66