掌握Oracle數據庫性能調優方法

隨着互聯網應用的快速發展,用戶的體驗要求也在不斷提高,軟件的性能測試顯得尤爲重要。當項目組想要優化一個性能不合格的軟件時,通常會採取性能調優的方法。性能調優是通過調節計算機硬件、操作系統、應用程序三方面之間的關係,實現整個系統的性能最大化,以滿足業務需求。Oracle數據庫作爲應用較爲廣泛的數據庫種類之一,開發測試人員需要掌握Oracle數據庫調優的常見場景與方法。

掌握Oracle數據庫性能調優方法掌握Oracle數據庫性能調優方法

在Oracle性能調優任務中,測試人員能夠通過nmon和Oracle自帶的性能分析工具AWR等觀測數據庫的任務執行情況和資源使用情況。其中,AWR報告中的SQL Statistics項會從幾個維度列舉系統執行較慢的SQL語句,用於瓶頸SQL定位。導致SQL語句執行時間長的原因有很多種,例如SQL解析時使用硬解析(Hard Parse)方法。下面着重講一下SQL語句的使用軟硬解析的區別。

在Oracle數據庫中有一塊區域被稱爲共享池(Shared Pool),它用於存放緩衝程序數據。已執行過的每一條SQL語句在共享池中都存有解析後的內容,存儲這些語句的地方叫高速緩存(Library Cache)。因爲內存區域是有限的,所以不能將所有解析後的語句都一直保存,Oracle採用最近最少使用原則(LRU,Least Recently Used)來管理共享池中的對象,只保留那些使用最頻繁且最近使用的語句。

每當Oracle執行一條語句時,首先會進行語法檢查(Syntax Check)和語義檢查(Semantic Check)。如果這些都通過,就會對SQL語句進行解析(Parse),具體做法是利用內部的哈希算法來取得該SQL的哈希值,檢查高速緩存裏是否存在該值。如果能成功在高速緩存中找到,就將利用已有的解析樹(Parse Tree)與執行計劃(Execution Plan),省略優化器的相關工作,這種解析被稱爲軟解析(Soft Parse);反之,Oracle將執行創建解析樹、生成執行計劃的工作,並將其放入高速緩存以待重用,這種方式稱爲硬解析。

硬解析通過優化器創建最優的執行計劃時,會根據數據字典中對象的統計信息計算多個執行計劃的代價,從而得到一個最優解。這一步涉及大量的計算,會消耗非常多的CPU資源。所以我們在做性能調優時,要儘可能使用軟解析,避免硬解析的執行。項目組在改進程序時,倡導功能相同的程序儘量保持一致性,多使用綁定變量,即將變量的數據通過一定的數據訪問技術來和相應的實體捆綁在一起,使之成爲一個整體。

本文主要講了Oracle數據庫中SQL解析性能調優的原理和方法,希望能給各位開發測試人員帶來幫助。

本文地址:https://www.linuxprobe.com/oracle-performence.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章