十分鐘初步掌握Oracle資料庫效能調優的常見場景與方法
摘要:隨著網際網路應用的快速發展,使用者的體驗要求也在不斷提高,軟體的效能測試顯得尤為重要。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~
在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解析效能調優的原理和方法,希望能給各位開發測試人員帶來幫助。
最後:
可以我的個人V:atstudy-js,可以免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的視訊學習教程免費分享!,其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。
這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2886974/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 掌握Oracle資料庫效能調優方法Oracle資料庫
- 三十分鐘掌握Webpack效能優化Web優化
- JVM之調優及常見場景分析JVM
- Oracle資料庫 Exp/Imp工具效能調優Oracle資料庫
- oracle資料庫的效能調整Oracle資料庫
- HBase資料庫效能調優OW資料庫
- WEB前端效能優化常見方法Web前端優化
- oracle資料庫的效能調整(轉)Oracle資料庫
- oracle資料庫調優描述Oracle資料庫
- 資料中心代理的常見使用場景
- Oracle資料庫效能優化Oracle資料庫優化
- MQ 常見的使用場景MQ
- 資料庫效能調優設計方案資料庫
- 十分鐘掌握SQLite操作SQLite
- 【效能優化】ORACLE資料庫效能優化概述優化Oracle資料庫
- 分散式資料庫的需求與場景分散式資料庫
- [轉載]Oracle資料庫應用系統調優方法Oracle資料庫
- 幾種常見的資料庫連線方法資料庫
- ORACLE資料庫效能優化概述Oracle資料庫優化
- 常見資料庫資料庫
- 常見資料庫系統之比較 - Oracle資料庫(轉)資料庫Oracle
- 如何保持Oracle資料庫的優良效能Oracle資料庫
- 一文帶你掌握常見的 Pandas 效能優化方法,讓你的 pandas 飛起來!優化
- oracle資料庫調優描述(三).txtOracle資料庫
- oracle資料庫調優描述(五).txtOracle資料庫
- oracle資料庫調優描述(二).txtOracle資料庫
- oracle資料庫調優描述(一).txtOracle資料庫
- Redis常見應用場景Redis
- nginx實現常見場景Nginx
- 單例模式常見場景單例模式
- 資料庫的效能調優:如何正確的使用索引?資料庫索引
- 網路庫與Rxjava2結合常見使用場景介紹RxJava
- oracle效能調優Oracle
- 資料庫效能調優之始: analyze統計資訊資料庫
- Oracle資料庫訪問效能優化Oracle資料庫優化
- Oracle資料庫效能優化總結Oracle資料庫優化
- Redis 的 5 個常見使用場景Redis
- redis常見的幾種使用場景Redis