新聞中心
當項目組想要優(yōu)化一個性能不合格的軟件時,通常會采取性能調優(yōu)的方法。性能調優(yōu)是通過調節(jié)計算機硬件、操作系統(tǒng)、應用程序三方面之間的關系,實現(xiàn)整個系統(tǒng)的性能最大化,以滿足業(yè)務需求。Oracle數(shù)據(jù)庫作為應用較為廣泛的數(shù)據(jù)庫種類之一,開發(fā)測試人員需要掌握Oracle數(shù)據(jù)庫調優(yōu)的常見場景與方法。

在太平等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計制作、網(wǎng)站設計 網(wǎng)站設計制作定制網(wǎng)站開發(fā),公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,成都全網(wǎng)營銷,外貿網(wǎng)站建設,太平網(wǎng)站建設費用合理。
在Oracle性能調優(yōu)任務中,測試人員能夠通過nmon和Oracle自帶的性能分析工具AWR等觀測數(shù)據(jù)庫的任務執(zhí)行情況和資源使用情況。其中,AWR報告中的SQL Statistics項會從幾個維度列舉系統(tǒng)執(zhí)行較慢的SQL語句,用于瓶頸SQL定位。導致SQL語句執(zhí)行時間長的原因有很多種,例如SQL解析時使用硬解析(Hard Parse)方法。下面著重講一下SQL語句的使用軟硬解析的區(qū)別。
在Oracle數(shù)據(jù)庫中有一塊區(qū)域被稱為共享池(Shared Pool),它用于存放緩沖程序數(shù)據(jù)。已執(zhí)行過的每一條SQL語句在共享池中都存有解析后的內容,存儲這些語句的地方叫高速緩存(Library Cache)。因為內存區(qū)域是有限的,所以不能將所有解析后的語句都一直保存,Oracle采用最近最少使用原則(LRU,Least Recently Used)來管理共享池中的對象,只保留那些使用最頻繁且最近使用的語句。
每當Oracle執(zhí)行一條語句時,首先會進行語法檢查(Syntax Check)和語義檢查(Semantic Check)。如果這些都通過,就會對SQL語句進行解析(Parse),具體做法是利用內部的哈希算法來取得該SQL的哈希值,檢查高速緩存里是否存在該值。如果能成功在高速緩存中找到,就將利用已有的解析樹(Parse Tree)與執(zhí)行計劃(Execution Plan),省略優(yōu)化器的相關工作,這種解析被稱為軟解析(Soft Parse);反之,Oracle將執(zhí)行創(chuàng)建解析樹、生成執(zhí)行計劃的工作,并將其放入高速緩存以待重用,這種方式稱為硬解析。
硬解析通過優(yōu)化器創(chuàng)建最優(yōu)的執(zhí)行計劃時,會根據(jù)數(shù)據(jù)字典中對象的統(tǒng)計信息計算多個執(zhí)行計劃的代價,從而得到一個最優(yōu)解。這一步涉及大量的計算,會消耗非常多的CPU資源。所以我們在做性能調優(yōu)時,要盡可能使用軟解析,避免硬解析的執(zhí)行。項目組在改進程序時,倡導功能相同的程序盡量保持一致性,多使用綁定變量,即將變量的數(shù)據(jù)通過一定的數(shù)據(jù)訪問技術來和相應的實體捆綁在一起,使之成為一個整體。
本文主要講了Oracle數(shù)據(jù)庫中SQL解析性能調優(yōu)的原理和方法,希望能給各位開發(fā)測試人員帶來幫助。
本文題目:十分鐘初步掌握Oracle數(shù)據(jù)庫性能調優(yōu)的常見場景與方法
標題來源:http://m.fisionsoft.com.cn/article/cccpcpe.html


咨詢
建站咨詢
