蔡建華,張凌立
(華東師范大學計算機科學與軟件工程學院,上海,200062)
關鍵字:Oracle數據庫;應用系統;性能優化;評價指標
隨著信息技術的不斷發展,Oracle數據庫應用系統在人們的實際生產生活中得到了廣泛應用。Oracle數據庫應用系統具有較強的事務處理能力,不但事務處理質量高,而且效率也有極大提升。根據相關統計顯示,Oracle數據庫應用系統在實際的應用過程中,仍存在影響系統性能的諸多因素,由此對Oracle數據庫應用系統的性能欠缺進行分析,并針對其出現的問題采取相關的應用對策,加強對Oracle數據庫應用系統的性能優化,對提高系統的運行效率具有重要意義。
20世紀70年代Oracle數據庫作為一種完善的數據處理系統誕生,能夠有效地梳理數據之間的關聯性,不但具備完善的關系結構,而且還具備分布式的部署功能,適合海量關系數據的存儲。在Oracle數據庫實際的應用過程當中,憑借其強大的優勢,可以便捷地管理不同業務的數據關系,但是影響其性能發揮的問題在實際應用中不可避免,因此技術人員要從應用實施出發對數據庫系統分析研究,依據評價指標使系統性能最優化,充分發揮Oracle數據庫應用系統的優勢。
通常情況下,提高Oracle數據庫應用系統的吞吐量主要包括兩方面內容。其一,盡最大程度化減少服務時間,促使服務質量與服務效率的提升。充分保障在有限的時間內及同等資源條件下,完成更多的任務量。其二,降低總體響應時間。通過對響應時間進行整體調整,從而提高Oracle數據庫應用系統的實際運行效率,發揮系統的作用,提高事務處理效率。
所謂的用戶響應時間,總體上來講就是系統對事務處理的總用時,并且當前這種用時單位主要以秒或者毫秒為主。而系統響應時間與用戶等待時間是用戶響應時間的主要組成部分。基于此,要想實現客戶接受響應時間,有效的提高服務質量與服務效率,則需要做好以下方面:其一,減少用戶等待時間,盡可能降低用戶的沖突率,避免用戶在同一時間內,對同一系統的使用。其二,減少服務時間,不斷增強Oracle數據庫應用系統的吞吐量。
Oracle數據庫在實際的應用過程當中,用戶處理事務時,其所需要的數據信息,完全是由緩存區高速緩存實現的。并且高速緩存命中率=命中總數÷查找總數。緩存區數據讀取與磁盤數據讀取相比較而言,前者更能夠降低數據讀取的開銷,并且緩存區數據命中率相對較高。
要想實現對內存使用情況的調整,主要加強對運營時內存、可共享內存、及永久性內存進行分配。在判斷內存是否存在合理化的使用時,需要結合兩個重要的標準對其內存使用情況作出判斷。首先,最大程度化降低能源的爭用率,由于等待與延遲會導致運行出現瓶頸。因此,要想避免出現瓶頸,則需要盡最大可能降低資源的爭用率。其次,實現投資數值的最大值。
在Oracle數據庫實際的使用當中,事務處理過程當中會隨之產生相應的I/O活動。并且這種活動同時可以囊括物理與邏輯兩種類型。其中,在衡量Oracle數據庫實際的運行性能時,磁盤的I/O活動發揮其不可替代的作用。與此同時,磁盤的I/O活動也是計算機開銷最大的地方。如果能夠在Oracle數據庫應用系統實際的運行當中,有效的降低I/O活動,則可以在一定程度上增加Oracle數據庫應用系統的吞吐量,極大的降低了用戶的響應時間,進而實現Oracle數據庫應用系統的實際運行效率。
Oracle數據庫應用系統當中,數據庫服務器是整個系統的核心部分,其性能的高低,對Oracle數據庫應用系統的運行具有重要的影響。并且,其操作系統與服務設備的硬件兩部分內容,嚴重制約著數據庫服務器的性能。
在數據庫的實際運行當中,數據庫配置的情況,在很大程度上影響著數據庫的性能。與此同時,數據庫配置是強化數據庫性能的重要保障。而數據庫配置主要由以下幾點內容組成,例如參數配置、I/O配置、碎片整集、CPU調整、內存區域配置、回滾段配置。數據庫配置將會貫穿于整個數據庫的整個運行當中。
在數據庫性能的提高過程當中,應用程序發揮著重要的作用。此外,選擇良好的數據庫銜接方案,設置數據庫程序等,對于提升SQL語言的運用能發揮其重要的作用。并且對于提升數據庫程序的運行效率,發揮其舉足輕重的作用。
內存優化主要是通過優化內存結構來提高系統性能,一直都是數據庫優化的工作重點。Oracle的內存分為系統全局區(SGA)和進程全局區(PGA),對內存進行有效配置調控的關鍵是在查詢時盡可能防止邏輯I/O變為物理I/O,也就是盡可能從緩存區訪問所需數據。數據文件的訪問可以通過調優合適的SGA高速緩沖區來被最小化,而臨時表空間的訪問可以通過優化PGA來被最小化。針對生產環境的實際情況,是否有系統突發工作量,是否存在要大量排序的定期批處理作業等情況來調整SGA和PGA的設置,制定相關優化策略以最小化處理時間。
4.1.1 優化共享環節
系統通過SGA對數據庫數據進行快速訪問,它是一組可被多個進程使用的共享內存緩沖區。首先要保證SGA被鎖定在物理內存中,避免頁入或頁出。其次要調優各共享區域的空間大小,其中優化庫高速緩沖區和共享池是提升數據庫訪問性能的關鍵。通過利用Oracle緩沖咨詢視圖,可準確地確定緩沖區高速緩存大小,減少執行物理讀寫請求的次數,提高緩沖區的數據命中率。共享池保存SQL語句的語法分析,當用戶執行SQL時,無需進行再次分析,直接從共享池取用已分析好的語句執行,提高其實際的落實效率。對這些共享緩沖區的合理設置,可以大大加快數據查詢速度,有效緩解資源被惡意消耗的情況。基于此,不斷優化共享環節,能夠有效的提高數據的命中率。
4.1.2 優化日志緩沖區
重做日志緩沖區是臨時存儲數據的內存區,用戶所有修改前后的數據都被保存在緩沖區中,在空閑等待過程中,log buffer數據會被LGWR進程寫入磁盤的重做日志文件之中,為緩沖區釋放更多可用空間,這在很大程度上提升了執行效率。如果日志緩沖區空間過小,會導致Oracle數據庫無法為日志重做提供存儲空間。或者數據寫入緩沖區的速度超過LGWR進程的寫出速度,會造成資源爭用或日志瓶頸。在DML操作頻繁或經常發生日志寫入等待事件的生產數據庫中,要詳細分析引發重做日志緩沖區產生等待事件的原因,調整合適的重做日志緩沖區尺寸,使數據庫的運轉性能最大化。
CPU的實際運行情況,對Oracle數據庫性能產生重要的影響。因此,不斷的優化CPU性能,不但有助于提升各項資源的應用效率,而且還能夠提高數據庫運行質量。首先,在數據庫的查詢及處理過程當中,需要采用兩個以上CPU。由于CPU技術不斷的進步,及其CPU并行技術應用的日漸成熟,Oracle可以很好地支持部署分布式數據庫,平衡海量數據的查詢及處理。此外,在進行數據查詢的時,可以利用PQO(Parallel Query Option)方法實現。使用PQO方式不僅可以在多個CPU配置間分配SQL語句的處理請求,而且,當所查詢的數據處于不同的磁盤時,PQO能夠使用多個獨立進程同時讀取不在同一個磁盤當中的數據。
優化Oracle數據庫應用系統性能,不但難度系數相對較大,并且是一項較為復雜的工程。因此,技術人員要結合Oracle數據庫應用系統的實際運行狀況,對其存在的問題進行全面分析。結合實際環境,優化除了針對文中討論的實施階段,有時需要回溯到數據庫應用系統的設計階段或開發階段,對程序結構或SQL語句進行調整,才能達到優化系統性能的目的。總之,優化要考慮應用程序在數據庫中涉及到的各個環節,才能全面提升Oracle數據庫應用系統的性能。